More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 40 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17418950 | 459 days ago | IN | 0 ETH | 0.00113231 | ||||
Approve | 17413092 | 460 days ago | IN | 0 ETH | 0.00106474 | ||||
Approve | 17413057 | 460 days ago | IN | 0 ETH | 0.00110906 | ||||
Transfer | 17413034 | 460 days ago | IN | 0 ETH | 0.00128406 | ||||
Transfer | 17413004 | 460 days ago | IN | 0 ETH | 0.00102585 | ||||
Approve | 17412948 | 460 days ago | IN | 0 ETH | 0.00102081 | ||||
Transfer | 17412932 | 460 days ago | IN | 0 ETH | 0.00139097 | ||||
Approve | 17412889 | 460 days ago | IN | 0 ETH | 0.00094408 | ||||
Approve | 17411699 | 460 days ago | IN | 0 ETH | 0.00085239 | ||||
Approve | 17411574 | 460 days ago | IN | 0 ETH | 0.00094379 | ||||
Transfer | 17411569 | 460 days ago | IN | 0 ETH | 0.00108004 | ||||
Change Is Fee Ex... | 17409494 | 461 days ago | IN | 0 ETH | 0.00119447 | ||||
Approve | 17409323 | 461 days ago | IN | 0 ETH | 0.0009167 | ||||
Approve | 17409231 | 461 days ago | IN | 0 ETH | 0.00111023 | ||||
Approve | 17409198 | 461 days ago | IN | 0 ETH | 0.00120333 | ||||
Change Fees | 17409188 | 461 days ago | IN | 0 ETH | 0.00126565 | ||||
Approve | 17409168 | 461 days ago | IN | 0 ETH | 0.00116564 | ||||
Approve | 17409162 | 461 days ago | IN | 0 ETH | 0.00096892 | ||||
Approve | 17409161 | 461 days ago | IN | 0 ETH | 0.00102114 | ||||
Approve | 17409155 | 461 days ago | IN | 0 ETH | 0.00117216 | ||||
Approve | 17409153 | 461 days ago | IN | 0 ETH | 0.001064 | ||||
Approve | 17409152 | 461 days ago | IN | 0 ETH | 0.00105641 | ||||
Approve | 17409152 | 461 days ago | IN | 0 ETH | 0.00105641 | ||||
Approve | 17409144 | 461 days ago | IN | 0 ETH | 0.00099285 | ||||
Transfer | 17409067 | 461 days ago | IN | 0 ETH | 0.00102516 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17411482 | 460 days ago | 0.00201482 ETH | ||||
17411482 | 460 days ago | 0.00100741 ETH | ||||
17411482 | 460 days ago | 0.00201482 ETH | ||||
17411482 | 460 days ago | 0.00503706 ETH | ||||
17411476 | 460 days ago | 0.00293025 ETH | ||||
17411476 | 460 days ago | 0.00146512 ETH | ||||
17411476 | 460 days ago | 0.00293025 ETH | ||||
17411476 | 460 days ago | 0.00732564 ETH | ||||
17409325 | 461 days ago | 0.00473595 ETH | ||||
17409325 | 461 days ago | 0.00236797 ETH | ||||
17409325 | 461 days ago | 0.00473595 ETH | ||||
17409325 | 461 days ago | 0.01183988 ETH | ||||
17409201 | 461 days ago | 0.00355054 ETH | ||||
17409201 | 461 days ago | 0.00177527 ETH | ||||
17409201 | 461 days ago | 0.00355054 ETH | ||||
17409201 | 461 days ago | 0.00887637 ETH | ||||
17409198 | 461 days ago | 0.00507637 ETH | ||||
17409198 | 461 days ago | 0.00253818 ETH | ||||
17409198 | 461 days ago | 0.00507637 ETH | ||||
17409198 | 461 days ago | 0.01269093 ETH | ||||
17409179 | 461 days ago | 0.0281797 ETH | ||||
17409179 | 461 days ago | 0.04226955 ETH | ||||
17409179 | 461 days ago | 0.0281797 ETH | ||||
17409179 | 461 days ago | 0.09862897 ETH | ||||
17406483 | 461 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DaffyDuck
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-04 */ //SPDX-License-Identifier: MIT pragma solidity ^0.7.4; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } 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, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IDividendDistributor { function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IDEXRouter router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IBEP20 RewardToken = IBEP20(0x3007083EAA95497cD6B2b809fB97B6A30bdF53D3); //FARB address[] shareholders; mapping(address => uint256) shareholderIndexes; mapping(address => uint256) shareholderClaims; mapping(address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10**36; uint256 public minPeriod = 60 minutes; uint256 public minDistribution = 1 * (10**6); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor(address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress); _token = msg.sender; } function setDistributionCriteria( uint256 newMinPeriod, uint256 newMinDistribution ) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if (shares[shareholder].amount > 0) { distributeDividend(shareholder); } if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: msg.value }(0, path, address(this), block.timestamp); uint256 amount = RewardToken.balanceOf(address(this)).sub( balanceBefore ); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(amount).div(totalShares) ); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if (shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while (gasUsed < gas && iterations < shareholderCount) { if (currentIndex >= shareholderCount) { currentIndex = 0; } if (shouldDistribute(shareholders[currentIndex])) { distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if (shares[shareholder].amount == 0) { return; } uint256 amount = getUnpaidEarnings(shareholder); if (amount > 0) { totalDistributed = totalDistributed.add(amount); RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder] .totalRealised .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } } function claimDividend(address shareholder) external onlyToken { distributeDividend(shareholder); } function rescueDividends(address to) external onlyToken { RewardToken.transfer(to, RewardToken.balanceOf(address(this))); } function setRewardToken(address _rewardToken) external onlyToken { RewardToken = IBEP20(_rewardToken); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } } abstract contract Auth { address internal owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier _onlyOwner() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function renounceOwnership() public virtual onlyOwner { transferOwnership(address(0)); } /** * Transfer ownership to new address. Caller must be owner. */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract DaffyDuck is IBEP20, Auth { using SafeMath for uint256; string constant _name = "DaffyDuck"; string constant _symbol = "$Duck"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D address RewardToken = 0x3007083EAA95497cD6B2b809fB97B6A30bdF53D3; uint256 _totalSupply = 1000000000 * (10**_decimals); uint256 public _maxTxAmount = (_totalSupply * 2) / 100; uint256 public _walletMax = (_totalSupply * 20) / 100; bool public restrictWhales = false; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isDividendExempt; mapping(address => bool) public normalTransferAddress; uint256 public liquidityFee = 0; uint256 private marketingFee = 3; uint256 public rewardsFee = 2; uint256 private stakingRewardFee = 0; uint256 private veFee = 2; uint256 private _gasPriceLimitB = 8; uint256 private gasPriceLimitB = _gasPriceLimitB * 1 gwei; uint256 public sellMultiplier = 15; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver; address private marketingWallet; address private veWall; address private stakingRewardWallet; IDEXRouter public router; address public pair; uint256 public launchedAt; DividendDistributor public dividendDistributor; uint256 distributorGas = 750000; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = (_totalSupply * 5) / 2000; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = uint256(-1); dividendDistributor = new DividendDistributor(address(router)); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isDividendExempt[pair] = true; isDividendExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; // NICE! autoLiquidityReceiver = msg.sender; marketingWallet = 0x8ef41E17aA8FcF8D534eA5B0aC01d053c6E180e9; // marketingwallet veWall = 0xc4f8EBb4E8bda9e00dd7019E6C5a279FBfeb01Ab; // stakingRewardWallet = 0x8ef41E17aA8FcF8D534eA5B0aC01d053c6E180e9; // totalFee = ( liquidityFee.add(marketingFee).add(rewardsFee).add(veFee).add(stakingRewardFee) ); totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function claimDividend() external { dividendDistributor.claimDividend(msg.sender); } function launched() internal view returns (bool) { return launchedAt != 0; } function changeSellFeeX10(uint256 newMulti) external onlyOwner { require(newMulti <= 30); sellMultiplier = newMulti; totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); } function launch() internal { launchedAt = block.number; } function changeTxLimit(uint256 newLimit) external _onlyOwner { _maxTxAmount = newLimit; } function checkTxLimit(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); } function setNormalTransferAddress(address _address, bool _status) external _onlyOwner{ normalTransferAddress[_address] = _status; } function changeWalletLimit(uint256 newLimit) external _onlyOwner { _walletMax = newLimit; } function changeRestrictWhales(bool newValue) external _onlyOwner { restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external _onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external _onlyOwner { isTxLimitExempt[holder] = exempt; } function changeIsDividendExempt(address holder, bool exempt) external _onlyOwner { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if (exempt) { dividendDistributor.setShare(holder, 0); } else { dividendDistributor.setShare(holder, _balances[holder]); } } function changeFees( uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newveFee, uint256 newStakingRewardFee ) external _onlyOwner { liquidityFee = newLiqFee; rewardsFee = newRewardFee; marketingFee = newMarketingFee; veFee = newveFee; stakingRewardFee = newStakingRewardFee; totalFee = liquidityFee .add(marketingFee) .add(rewardsFee) .add(veFee) .add(stakingRewardFee); require(totalFee <= 10); totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); } function changeFeeReceivers( address newLiquidityReceiver, address newMarketingWallet, address newStakingRewardWallet ) external _onlyOwner { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; stakingRewardWallet = newStakingRewardWallet; } function changeSwapBackSettings( bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly ) external _onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; swapAndLiquifyByLimitOnly = swapByLimitOnly; } function changeDistributionCriteria( uint256 newinPeriod, uint256 newMinDistribution ) external onlyOwner { dividendDistributor.setDistributionCriteria( newinPeriod, newMinDistribution ); } function changeDistributorSettings(uint256 gas) external _onlyOwner { require(gas < 750000); distributorGas = gas; } function setRewardToken(address _rewardToken) external _onlyOwner { dividendDistributor.setRewardToken(_rewardToken); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != uint256(-1)) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if(normalTransferAddress[sender]==true){ return _basicTransfer(sender, recipient, amount); } require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); if ( msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBack(); } if (!launched() && recipient == pair) { require(_balances[sender] > 0); launch(); } if (recipient != pair && sender != pair) { return _basicTransfer(sender, recipient, amount); } //Exchange tokens _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); if (!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if (!isDividendExempt[sender]) { try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if (!isDividendExempt[recipient]) { try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} } try dividendDistributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function setGas(uint256 Gas) external onlyOwner { require(Gas > 7, "Max gas must be higher than 7 gwei"); _gasPriceLimitB = Gas; gasPriceLimitB = _gasPriceLimitB * 1 gwei; } function swapBack() internal lockTheSwap { uint256 amountToSwap = _balances[address(this)]; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; uint256 totalBNBFee = totalFee; uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee); uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div( totalBNBFee ); uint256 amountStakingReward = amountBNB.mul(stakingRewardFee).div( totalBNBFee ); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div( totalBNBFee ); uint256 amountBNBTeamdev = amountBNB.mul(veFee).div(totalBNBFee); try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {} (bool tmpSuccess, ) = payable(marketingWallet).call{ value: amountBNBMarketing, gas: 30000 }(""); (bool tmpSuccess1, ) = payable(veWall).call{ value: amountBNBTeamdev, gas: 30000 }(""); (bool tmpSuccess2, ) = payable(autoLiquidityReceiver).call{ value: amountBNBLiquidity, gas: 30000 }(""); (bool tmpSuccess3, ) = payable(stakingRewardWallet).call{ value: amountStakingReward, gas: 30000 }(""); // only to supress warning msg tmpSuccess = false; tmpSuccess1 = false; tmpSuccess2 = false; tmpSuccess3 = false; } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newStakingRewardWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newveFee","type":"uint256"},{"internalType":"uint256","name":"newStakingRewardFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMulti","type":"uint256"}],"name":"changeSellFeeX10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"normalTransferAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Gas","type":"uint256"}],"name":"setGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setNormalTransferAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"totalFeeIfSelling","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733007083eaa95497cd6b2b809fb97b6a30bdf53d3600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca00026006556064600260065402816200015457fe5b046007556064601460065402816200016857fe5b046008556000600960006101000a81548160ff021916908315150217905550600060105560036011556002601255600060135560026014556008601555633b9aca0060155402601655600f60175560006018556000601955620b71b06022556001602360016101000a81548160ff0219169083151502179055506000602360026101000a81548160ff0219169083151502179055506107d0600560065402816200020e57fe5b046024553480156200021f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038557600080fd5b505afa1580156200039a573d6000803e3d6000fd5b505050506040513d6020811015620003b157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044657600080fd5b505afa1580156200045b573d6000803e3d6000fd5b505050506040513d60208110156200047257600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004ee57600080fd5b505af115801562000503573d6000803e3d6000fd5b505050506040513d60208110156200051a57600080fd5b8101908080519060200190929190505050601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200065f9062000f55565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156200069c573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738ef41e17aa8fcf8d534ea5b0ac01d053c6e180e9601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c4f8ebb4e8bda9e00dd7019e6c5a279fbfeb01ab601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738ef41e17aa8fcf8d534ea5b0ac01d053c6e180e9601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000c2c60135462000c1860145462000c0460125462000bf060115460105462000d2460201b62002dd11790919060201c565b62000d2460201b62002dd11790919060201c565b62000d2460201b62002dd11790919060201c565b62000d2460201b62002dd11790919060201c565b60188190555062000c6a600a62000c5660175460185462000dad60201b62002e591790919060201c565b62000e3860201b62002edf1790919060201c565b601981905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000f63565b60008082840190508381101562000da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141562000dc2576000905062000e32565b600082840290508284828162000dd457fe5b041462000e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620073936021913960400191505060405180910390fd5b809150505b92915050565b600062000e8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e8a60201b60201c565b905092915050565b6000808311829062000f3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000efe57808201518184015260208101905062000ee1565b50505050905090810190601f16801562000f2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000f4757fe5b049050809150509392505050565b611e2e806200556583390190565b6145f28062000f736000396000f3fe6080604052600436106103395760003560e01c80638aee8127116101ab578063ca33e64c116100f7578063f0b37c0411610095578063f887ea401161006f578063f887ea401461120c578063fabe62831461124d578063fe9fbb80146112aa578063fed0d2a11461131157610340565b8063f0b37c0414611153578063f0fc6bca146111a4578063f2fde38b146111bb57610340565b8063da00097d116100d1578063da00097d14611029578063dd51faa214611056578063dd62ed3e14611091578063e66b1d1e1461111657610340565b8063ca33e64c14610f82578063ca987b0e14610fc3578063d920334e14610fee57610340565b8063a8aa1b3111610164578063b6a5d7de1161013e578063b6a5d7de14610e8a578063bad3ea6a14610edb578063bbb1994014610f1c578063bf56b37114610f5757610340565b8063a8aa1b3114610d93578063a9059cbb14610dd4578063a9f7864b14610e4557610340565b80638aee812714610b605780638b42507f14610bb157806395d89b4114610c1857806398118cb414610ca85780639e12111714610cd3578063a3a2e89e14610d3657610340565b80634355855a11610285578063734d1714116102235780637db1342c116101fd5780637db1342c14610a5c578063807c2d9c14610a975780638647cb3c14610ac2578063893d20e814610b1f57610340565b8063734d17141461096d578063773fcb5c146109d45780637d1db4a514610a3157610340565b80634a74bb021161025f5780634a74bb021461085d578063571ac8b01461088a57806370a08231146108f1578063715018a61461095657610340565b80634355855a1461078e57806344de2e4c146107f5578063479f66d81461082257610340565b80632b112e49116102f2578063313ce567116102cc578063313ce56714610615578063315dca291461064357806334c70889146106d45780633f4218e01461072757610340565b80632b112e49146105585780632bb14e1d146105835780632f54bf6e146105ae57610340565b80630445b6671461034557806306fdde0314610370578063095ea7b31461040057806318160ddd146104715780631df4ccfc1461049c57806323b872dd146104c757610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a61133c565b6040518082815260200191505060405180910390f35b34801561037c57600080fd5b50610385611342565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c55780820151818401526020810190506103aa565b50505050905090810190601f1680156103f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040c57600080fd5b506104596004803603604081101561042357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137f565b60405180821515815260200191505060405180910390f35b34801561047d57600080fd5b50610486611471565b6040518082815260200191505060405180910390f35b3480156104a857600080fd5b506104b161147b565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610540600480360360608110156104ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611481565b60405180821515815260200191505060405180910390f35b34801561056457600080fd5b5061056d611681565b6040518082815260200191505060405180910390f35b34801561058f57600080fd5b50610598611703565b6040518082815260200191505060405180910390f35b3480156105ba57600080fd5b506105fd600480360360208110156105d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611709565b60405180821515815260200191505060405180910390f35b34801561062157600080fd5b5061062a611762565b604051808260ff16815260200191505060405180910390f35b34801561064f57600080fd5b506106d26004803603606081101561066657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176b565b005b3480156106e057600080fd5b50610725600480360360608110156106f757600080fd5b81019080803515159060200190929190803590602001909291908035151590602001909291905050506118ae565b005b34801561073357600080fd5b506107766004803603602081101561074a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611969565b60405180821515815260200191505060405180910390f35b34801561079a57600080fd5b506107dd600480360360208110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611989565b60405180821515815260200191505060405180910390f35b34801561080157600080fd5b5061080a6119a9565b60405180821515815260200191505060405180910390f35b34801561082e57600080fd5b5061085b6004803603602081101561084557600080fd5b81019080803590602001909291905050506119bc565b005b34801561086957600080fd5b50610872611a50565b60405180821515815260200191505060405180910390f35b34801561089657600080fd5b506108d9600480360360208110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a63565b60405180821515815260200191505060405180910390f35b3480156108fd57600080fd5b506109406004803603602081101561091457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a96565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061096b611adf565b005b34801561097957600080fd5b506109bc6004803603602081101561099057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b66565b60405180821515815260200191505060405180910390f35b3480156109e057600080fd5b50610a2f600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611b86565b005b348015610a3d57600080fd5b50610a46611e91565b6040518082815260200191505060405180910390f35b348015610a6857600080fd5b50610a9560048036036020811015610a7f57600080fd5b8101908080359060200190929190505050611e97565b005b348015610aa357600080fd5b50610aac611f1c565b6040518082815260200191505060405180910390f35b348015610ace57600080fd5b50610b1d60048036036040811015610ae557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f22565b005b348015610b2b57600080fd5b50610b34611ff8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6c57600080fd5b50610baf60048036036020811015610b8357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612021565b005b348015610bbd57600080fd5b50610c0060048036036020811015610bd457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612142565b60405180821515815260200191505060405180910390f35b348015610c2457600080fd5b50610c2d612162565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cb457600080fd5b50610cbd61219f565b6040518082815260200191505060405180910390f35b348015610cdf57600080fd5b50610d34600480360360a0811015610cf657600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506121a5565b005b348015610d4257600080fd5b50610d9160048036036040811015610d5957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506122e3565b005b348015610d9f57600080fd5b50610da86123b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610de057600080fd5b50610e2d60048036036040811015610df757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123df565b60405180821515815260200191505060405180910390f35b348015610e5157600080fd5b50610e8860048036036040811015610e6857600080fd5b8101908080359060200190929190803590602001909291905050506123f4565b005b348015610e9657600080fd5b50610ed960048036036020811015610ead57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612508565b005b348015610ee757600080fd5b50610ef06125dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f2857600080fd5b50610f5560048036036020811015610f3f57600080fd5b8101908080359060200190929190505050612603565b005b348015610f6357600080fd5b50610f6c6126c6565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610f976126cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fcf57600080fd5b50610fd86126f2565b6040518082815260200191505060405180910390f35b348015610ffa57600080fd5b506110276004803603602081101561101157600080fd5b81019080803590602001909291905050506126f8565b005b34801561103557600080fd5b5061103e61277d565b60405180821515815260200191505060405180910390f35b34801561106257600080fd5b5061108f6004803603602081101561107957600080fd5b8101908080359060200190929190505050612790565b005b34801561109d57600080fd5b50611100600480360360408110156110b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061287d565b6040518082815260200191505060405180910390f35b34801561112257600080fd5b506111516004803603602081101561113957600080fd5b81019080803515159060200190929190505050612904565b005b34801561115f57600080fd5b506111a26004803603602081101561117657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299c565b005b3480156111b057600080fd5b506111b9612a72565b005b3480156111c757600080fd5b5061120a600480360360208110156111de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b17565b005b34801561121857600080fd5b50611221612c79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561125957600080fd5b506112a86004803603604081101561127057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c9f565b005b3480156112b657600080fd5b506112f9600480360360208110156112cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d75565b60405180821515815260200191505060405180910390f35b34801561131d57600080fd5b50611326612dcb565b6040518082815260200191505060405180910390f35b60245481565b60606040518060400160405280600981526020017f44616666794475636b0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461166d576115ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611678848484612fe9565b90509392505050565b60006116fe6116b1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a96565b6116f06116df600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a96565b600654613a1390919063ffffffff16565b613a1390919063ffffffff16565b905090565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b61177433612d75565b6117e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6118b733612d75565b611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b6119c533612d75565b611a37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611a4657600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611a8f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137f565b9050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ae833611709565b611b5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611b646000612b17565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b611b8f33612d75565b611c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c8b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611c9457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611da257602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611d8557600080fd5b505af1158015611d99573d6000803e3d6000fd5b50505050611e8d565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050505b5050565b60075481565b611ea033612d75565b611f12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b611f2b33612d75565b611f9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61202a33612d75565b61209c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561212757600080fd5b505af115801561213b573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f244475636b000000000000000000000000000000000000000000000000000000815250905090565b60105481565b6121ae33612d75565b612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b846010819055508360128190555082601181905550816014819055508060138190555061229660135461228860145461227a60125461226c601154601054612dd190919063ffffffff16565b612dd190919063ffffffff16565b612dd190919063ffffffff16565b612dd190919063ffffffff16565b601881905550600a60185411156122ac57600080fd5b6122d6600a6122c8601754601854612e5990919063ffffffff16565b612edf90919063ffffffff16565b6019819055505050505050565b6122ec33612d75565b61235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006123ec338484612fe9565b905092915050565b6123fd33611709565b61246f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156124ec57600080fd5b505af1158015612500573d6000803e3d6000fd5b505050505050565b61251133611709565b612583576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61260c33611709565b61267e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561268c57600080fd5b806017819055506126bd600a6126af601754601854612e5990919063ffffffff16565b612edf90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61270133612d75565b612773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b61279933611709565b61280b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061457a6022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61290d33612d75565b61297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b6129a533611709565b612a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612afd57600080fd5b505af1158015612b11573d6000803e3d6000fd5b50505050565b612b2033611709565b612b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ca833612d75565b612d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b600080828401905083811015612e4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612e6c5760009050612ed9565b6000828402905082848281612e7d57fe5b0414612ed4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061459c6021913960400191505060405180910390fd5b809150505b92915050565b6000612f2183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a5d565b905092915050565b6000838311158290612fd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f9b578082015181840152602081019050612f80565b50505050905090810190601f168015612fc85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff16156130125761300b848484613b23565b9050613a0c565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561307d57613076848484613b23565b9050613a0c565b600754821115806130d75750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602360009054906101000a900460ff16155b80156131cc5750602360019054906101000a900460ff165b80156132195750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561322757613226613cf6565b5b61322f6143bb565b1580156132895750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156132e3576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116132da57600080fd5b6132e26143c8565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561338f5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156133a65761339f848484613b23565b9050613a0c565b61342f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134d85750600960009054906101000a900460ff165b1561353e5760085461353283600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b111561353d57600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e45750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6135ee57826135fa565b6135f98585856143d1565b5b905061364e81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166137d057602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156137b457600080fd5b505af19250505080156137c5575060015b6137ce576137cf565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661390f57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156138f357600080fd5b505af1925050508015613904575060015b61390d5761390e565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561398657600080fd5b505af1925050508015613997575060015b6139a0576139a1565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613a5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f29565b905092915050565b60008083118290613b09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ace578082015181840152602081019050613ab3565b50505050905090810190601f168015613afb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b1557fe5b049050809150509392505050565b6000613bae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c4382600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613d6f57600080fd5b50604051908082528060200260200182016040528015613d9e5781602001602082028036833780820191505090505b5090503081600081518110613daf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613e5157600080fd5b505afa158015613e65573d6000803e3d6000fd5b505050506040513d6020811015613e7b57600080fd5b810190808051906020019092919050505081600181518110613e9957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613f97578082015181840152602081019050613f7c565b505050509050019650505050505050600060405180830381600087803b158015613fc057600080fd5b505af1158015613fd4573d6000803e3d6000fd5b50505050600047905060006018549050600061400d82613fff60105486612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140388361402a60125487612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140638461405560135488612e5990919063ffffffff16565b612edf90919063ffffffff16565b9050600061408e8561408060115489612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140b9866140ab6014548a612e5990919063ffffffff16565b612edf90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561412557600080fd5b505af193505050508015614137575060015b61414057614141565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146141c8576040519150601f19603f3d011682016040523d82523d6000602084013e6141cd565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614258576040519150601f19603f3d011682016040523d82523d6000602084013e61425d565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d80600081146142e8576040519150601f19603f3d011682016040523d82523d6000602084013e6142ed565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614378576040519150601f19603f3d011682016040523d82523d6000602084013e61437d565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461443157601854614435565b6019545b9050600061445f60646144518487612e5990919063ffffffff16565b612edf90919063ffffffff16565b90506144b381600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361456e8185613a1390919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bf7a2a58250ec583ea47769c077d89dc664455bef42372111d2476d90e57bfbe64736f6c634300070400336080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733007083eaa95497cd6b2b809fb97b6a30bdf53d3600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55620f4240600e553480156100da57600080fd5b50604051611e2e380380611e2e833981810160405260208110156100fd57600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016d565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611c31806101fd6000396000f3fe6080604052600436106100f35760003560e01c80638aee81271161008a578063e2d2e21911610059578063e2d2e21914610419578063efca2eed14610444578063ffb2c4791461046f578063ffd49c84146104aa576100f3565b80638aee812714610320578063997664d714610371578063ce7c2ac21461039c578063d0e30db01461040f576100f3565b80632d48e896116100c65780632d48e896146102345780633a98ef39146102795780634339a815146102a45780634fab0ae8146102f5576100f3565b806311ce023d146100f857806314b6ca961461012357806315f7e05e1461017e57806328fd3198146101cf575b600080fd5b34801561010457600080fd5b5061010d6104d5565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061017c6004803603604081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b005b34801561018a57600080fd5b506101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b005b3480156101db57600080fd5b5061021e600480360360208110156101f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fe565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b506102776004803603604081101561025757600080fd5b810190808035906020019092919080359060200190929190505050610918565b005b34801561028557600080fd5b5061028e610982565b6040518082815260200191505060405180910390f35b3480156102b057600080fd5b506102f3600480360360208110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610988565b005b34801561030157600080fd5b5061030a610b75565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b5061036f6004803603602081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b7b565b005b34801561037d57600080fd5b50610386610c17565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b506103eb600480360360208110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c1d565b60405180848152602001838152602001828152602001935050505060405180910390f35b610417610c47565b005b34801561042557600080fd5b5061042e611142565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610459611148565b6040518082815260200191505060405180910390f35b34801561047b57600080fd5b506104a86004803603602081101561049257600080fd5b810190808035906020019092919050505061114e565b005b3480156104b657600080fd5b506104bf6112c8565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561058857610587826112ce565b5b6000811180156105da57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105ed576105e882611594565b61064f565b60008114801561063f57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561064e5761064d82611643565b5b5b6106b8816106aa600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461181c90919063ffffffff16565b61186690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f257600080fd5b6107fb816112ce565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108535760009050610913565b60006108a0600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116108fb57600092505050610913565b61090e818361181c90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b81600d8190555080600e819055505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d6020811015610ad257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050506040513d6020811015610b6057600080fd5b81019080805190602001909291905050505050565b600e5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd357600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610db05781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1b57600080fd5b505afa158015610e2f573d6000803e3d6000fd5b505050506040513d6020811015610e4557600080fd5b810190808051906020019092919050505081600081518110610e6357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610ecd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610fc5578082015181840152602081019050610faa565b50505050905001955050505050506000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b505050505060006110dd83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561109457600080fd5b505afa1580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505061181c90919063ffffffff16565b90506110f48160095461186690919063ffffffff16565b60098190555061113761112660085461111884600c5461192090919063ffffffff16565b6119a690919063ffffffff16565b600b5461186690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a657600080fd5b6000600480549050905060008114156111bf57506112c5565b60008060005a90505b84821080156111d657508383105b156112c05783600f54106111ed576000600f819055505b61122f6004600f54815481106111ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119f0565b15611277576112766004600f548154811061124657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112ce565b5b61129c61128d5a8361181c90919063ffffffff16565b8361186690919063ffffffff16565b91505a9050600f6000815480929190600101919050555082806001019350506111c8565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561131e57611591565b6000611329826107fe565b9050600081111561158f5761134981600a5461186690919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114b781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461186690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611548600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061165857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106116cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061177057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806117e457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061185e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a54565b905092915050565b6000808284019050838110156118e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611919600c5461190b600b548561192090919063ffffffff16565b6119a690919063ffffffff16565b9050919050565b60008083141561193357600090506119a0565b600082840290508284828161194457fe5b041461199b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611bdb6021913960400191505060405180910390fd5b809150505b92915050565b60006119e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b14565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401108015611a4d5750600e54611a4b836107fe565b115b9050919050565b6000838311158290611b01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac6578082015181840152602081019050611aab565b50505050905090810190601f168015611af35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b85578082015181840152602081019050611b6a565b50505050905090810190601f168015611bb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bcc57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d5173c3c6a1361f5fde0e78b8d12e10a30995bd10245c51d63c5d12055fb57e964736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77
Deployed Bytecode
0x6080604052600436106103395760003560e01c80638aee8127116101ab578063ca33e64c116100f7578063f0b37c0411610095578063f887ea401161006f578063f887ea401461120c578063fabe62831461124d578063fe9fbb80146112aa578063fed0d2a11461131157610340565b8063f0b37c0414611153578063f0fc6bca146111a4578063f2fde38b146111bb57610340565b8063da00097d116100d1578063da00097d14611029578063dd51faa214611056578063dd62ed3e14611091578063e66b1d1e1461111657610340565b8063ca33e64c14610f82578063ca987b0e14610fc3578063d920334e14610fee57610340565b8063a8aa1b3111610164578063b6a5d7de1161013e578063b6a5d7de14610e8a578063bad3ea6a14610edb578063bbb1994014610f1c578063bf56b37114610f5757610340565b8063a8aa1b3114610d93578063a9059cbb14610dd4578063a9f7864b14610e4557610340565b80638aee812714610b605780638b42507f14610bb157806395d89b4114610c1857806398118cb414610ca85780639e12111714610cd3578063a3a2e89e14610d3657610340565b80634355855a11610285578063734d1714116102235780637db1342c116101fd5780637db1342c14610a5c578063807c2d9c14610a975780638647cb3c14610ac2578063893d20e814610b1f57610340565b8063734d17141461096d578063773fcb5c146109d45780637d1db4a514610a3157610340565b80634a74bb021161025f5780634a74bb021461085d578063571ac8b01461088a57806370a08231146108f1578063715018a61461095657610340565b80634355855a1461078e57806344de2e4c146107f5578063479f66d81461082257610340565b80632b112e49116102f2578063313ce567116102cc578063313ce56714610615578063315dca291461064357806334c70889146106d45780633f4218e01461072757610340565b80632b112e49146105585780632bb14e1d146105835780632f54bf6e146105ae57610340565b80630445b6671461034557806306fdde0314610370578063095ea7b31461040057806318160ddd146104715780631df4ccfc1461049c57806323b872dd146104c757610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a61133c565b6040518082815260200191505060405180910390f35b34801561037c57600080fd5b50610385611342565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c55780820151818401526020810190506103aa565b50505050905090810190601f1680156103f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040c57600080fd5b506104596004803603604081101561042357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137f565b60405180821515815260200191505060405180910390f35b34801561047d57600080fd5b50610486611471565b6040518082815260200191505060405180910390f35b3480156104a857600080fd5b506104b161147b565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610540600480360360608110156104ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611481565b60405180821515815260200191505060405180910390f35b34801561056457600080fd5b5061056d611681565b6040518082815260200191505060405180910390f35b34801561058f57600080fd5b50610598611703565b6040518082815260200191505060405180910390f35b3480156105ba57600080fd5b506105fd600480360360208110156105d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611709565b60405180821515815260200191505060405180910390f35b34801561062157600080fd5b5061062a611762565b604051808260ff16815260200191505060405180910390f35b34801561064f57600080fd5b506106d26004803603606081101561066657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176b565b005b3480156106e057600080fd5b50610725600480360360608110156106f757600080fd5b81019080803515159060200190929190803590602001909291908035151590602001909291905050506118ae565b005b34801561073357600080fd5b506107766004803603602081101561074a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611969565b60405180821515815260200191505060405180910390f35b34801561079a57600080fd5b506107dd600480360360208110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611989565b60405180821515815260200191505060405180910390f35b34801561080157600080fd5b5061080a6119a9565b60405180821515815260200191505060405180910390f35b34801561082e57600080fd5b5061085b6004803603602081101561084557600080fd5b81019080803590602001909291905050506119bc565b005b34801561086957600080fd5b50610872611a50565b60405180821515815260200191505060405180910390f35b34801561089657600080fd5b506108d9600480360360208110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a63565b60405180821515815260200191505060405180910390f35b3480156108fd57600080fd5b506109406004803603602081101561091457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a96565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061096b611adf565b005b34801561097957600080fd5b506109bc6004803603602081101561099057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b66565b60405180821515815260200191505060405180910390f35b3480156109e057600080fd5b50610a2f600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611b86565b005b348015610a3d57600080fd5b50610a46611e91565b6040518082815260200191505060405180910390f35b348015610a6857600080fd5b50610a9560048036036020811015610a7f57600080fd5b8101908080359060200190929190505050611e97565b005b348015610aa357600080fd5b50610aac611f1c565b6040518082815260200191505060405180910390f35b348015610ace57600080fd5b50610b1d60048036036040811015610ae557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f22565b005b348015610b2b57600080fd5b50610b34611ff8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6c57600080fd5b50610baf60048036036020811015610b8357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612021565b005b348015610bbd57600080fd5b50610c0060048036036020811015610bd457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612142565b60405180821515815260200191505060405180910390f35b348015610c2457600080fd5b50610c2d612162565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cb457600080fd5b50610cbd61219f565b6040518082815260200191505060405180910390f35b348015610cdf57600080fd5b50610d34600480360360a0811015610cf657600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506121a5565b005b348015610d4257600080fd5b50610d9160048036036040811015610d5957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506122e3565b005b348015610d9f57600080fd5b50610da86123b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610de057600080fd5b50610e2d60048036036040811015610df757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123df565b60405180821515815260200191505060405180910390f35b348015610e5157600080fd5b50610e8860048036036040811015610e6857600080fd5b8101908080359060200190929190803590602001909291905050506123f4565b005b348015610e9657600080fd5b50610ed960048036036020811015610ead57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612508565b005b348015610ee757600080fd5b50610ef06125dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f2857600080fd5b50610f5560048036036020811015610f3f57600080fd5b8101908080359060200190929190505050612603565b005b348015610f6357600080fd5b50610f6c6126c6565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610f976126cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fcf57600080fd5b50610fd86126f2565b6040518082815260200191505060405180910390f35b348015610ffa57600080fd5b506110276004803603602081101561101157600080fd5b81019080803590602001909291905050506126f8565b005b34801561103557600080fd5b5061103e61277d565b60405180821515815260200191505060405180910390f35b34801561106257600080fd5b5061108f6004803603602081101561107957600080fd5b8101908080359060200190929190505050612790565b005b34801561109d57600080fd5b50611100600480360360408110156110b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061287d565b6040518082815260200191505060405180910390f35b34801561112257600080fd5b506111516004803603602081101561113957600080fd5b81019080803515159060200190929190505050612904565b005b34801561115f57600080fd5b506111a26004803603602081101561117657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299c565b005b3480156111b057600080fd5b506111b9612a72565b005b3480156111c757600080fd5b5061120a600480360360208110156111de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b17565b005b34801561121857600080fd5b50611221612c79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561125957600080fd5b506112a86004803603604081101561127057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c9f565b005b3480156112b657600080fd5b506112f9600480360360208110156112cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d75565b60405180821515815260200191505060405180910390f35b34801561131d57600080fd5b50611326612dcb565b6040518082815260200191505060405180910390f35b60245481565b60606040518060400160405280600981526020017f44616666794475636b0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461166d576115ec826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611678848484612fe9565b90509392505050565b60006116fe6116b1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a96565b6116f06116df600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a96565b600654613a1390919063ffffffff16565b613a1390919063ffffffff16565b905090565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b61177433612d75565b6117e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6118b733612d75565b611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b6119c533612d75565b611a37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611a4657600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611a8f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137f565b9050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ae833611709565b611b5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611b646000612b17565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b611b8f33612d75565b611c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c8b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611c9457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611da257602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611d8557600080fd5b505af1158015611d99573d6000803e3d6000fd5b50505050611e8d565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050505b5050565b60075481565b611ea033612d75565b611f12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b611f2b33612d75565b611f9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61202a33612d75565b61209c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561212757600080fd5b505af115801561213b573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f244475636b000000000000000000000000000000000000000000000000000000815250905090565b60105481565b6121ae33612d75565b612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b846010819055508360128190555082601181905550816014819055508060138190555061229660135461228860145461227a60125461226c601154601054612dd190919063ffffffff16565b612dd190919063ffffffff16565b612dd190919063ffffffff16565b612dd190919063ffffffff16565b601881905550600a60185411156122ac57600080fd5b6122d6600a6122c8601754601854612e5990919063ffffffff16565b612edf90919063ffffffff16565b6019819055505050505050565b6122ec33612d75565b61235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006123ec338484612fe9565b905092915050565b6123fd33611709565b61246f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156124ec57600080fd5b505af1158015612500573d6000803e3d6000fd5b505050505050565b61251133611709565b612583576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61260c33611709565b61267e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561268c57600080fd5b806017819055506126bd600a6126af601754601854612e5990919063ffffffff16565b612edf90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61270133612d75565b612773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b61279933611709565b61280b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061457a6022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61290d33612d75565b61297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b6129a533611709565b612a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612afd57600080fd5b505af1158015612b11573d6000803e3d6000fd5b50505050565b612b2033611709565b612b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ca833612d75565b612d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b600080828401905083811015612e4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612e6c5760009050612ed9565b6000828402905082848281612e7d57fe5b0414612ed4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061459c6021913960400191505060405180910390fd5b809150505b92915050565b6000612f2183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a5d565b905092915050565b6000838311158290612fd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f9b578082015181840152602081019050612f80565b50505050905090810190601f168015612fc85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff16156130125761300b848484613b23565b9050613a0c565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561307d57613076848484613b23565b9050613a0c565b600754821115806130d75750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602360009054906101000a900460ff16155b80156131cc5750602360019054906101000a900460ff165b80156132195750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561322757613226613cf6565b5b61322f6143bb565b1580156132895750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156132e3576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116132da57600080fd5b6132e26143c8565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561338f5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156133a65761339f848484613b23565b9050613a0c565b61342f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134d85750600960009054906101000a900460ff165b1561353e5760085461353283600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b111561353d57600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e45750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6135ee57826135fa565b6135f98585856143d1565b5b905061364e81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166137d057602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156137b457600080fd5b505af19250505080156137c5575060015b6137ce576137cf565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661390f57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156138f357600080fd5b505af1925050508015613904575060015b61390d5761390e565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561398657600080fd5b505af1925050508015613997575060015b6139a0576139a1565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613a5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f29565b905092915050565b60008083118290613b09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ace578082015181840152602081019050613ab3565b50505050905090810190601f168015613afb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b1557fe5b049050809150509392505050565b6000613bae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f299092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c4382600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613d6f57600080fd5b50604051908082528060200260200182016040528015613d9e5781602001602082028036833780820191505090505b5090503081600081518110613daf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613e5157600080fd5b505afa158015613e65573d6000803e3d6000fd5b505050506040513d6020811015613e7b57600080fd5b810190808051906020019092919050505081600181518110613e9957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613f97578082015181840152602081019050613f7c565b505050509050019650505050505050600060405180830381600087803b158015613fc057600080fd5b505af1158015613fd4573d6000803e3d6000fd5b50505050600047905060006018549050600061400d82613fff60105486612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140388361402a60125487612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140638461405560135488612e5990919063ffffffff16565b612edf90919063ffffffff16565b9050600061408e8561408060115489612e5990919063ffffffff16565b612edf90919063ffffffff16565b905060006140b9866140ab6014548a612e5990919063ffffffff16565b612edf90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561412557600080fd5b505af193505050508015614137575060015b61414057614141565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146141c8576040519150601f19603f3d011682016040523d82523d6000602084013e6141cd565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614258576040519150601f19603f3d011682016040523d82523d6000602084013e61425d565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d80600081146142e8576040519150601f19603f3d011682016040523d82523d6000602084013e6142ed565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614378576040519150601f19603f3d011682016040523d82523d6000602084013e61437d565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461443157601854614435565b6019545b9050600061445f60646144518487612e5990919063ffffffff16565b612edf90919063ffffffff16565b90506144b381600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd190919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361456e8185613a1390919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bf7a2a58250ec583ea47769c077d89dc664455bef42372111d2476d90e57bfbe64736f6c63430007040033
Deployed Bytecode Sourcemap
12563:14465:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14523:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16101:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17094:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16411:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13974:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21503:416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16621:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13714:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11851:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16309:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20068:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20433:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13416:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13520:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13261:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21019:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14422:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17350:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16771:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12140:102;;;;;;;;;;;;;:::i;:::-;;13575:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18996:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13138:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18450:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13199:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18297:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16521:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21166:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13466:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16203:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13637:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19399:661;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18680:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14239:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21307:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20750:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11524:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14301:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17680:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14267:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14053:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14008;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17975:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14469:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24877:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16898:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18563:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11694:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17476:98;;;;;;;;;;;;;:::i;:::-;;12333:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14208:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18834:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12025:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13931:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14523:56;;;;:::o;16101:94::-;16149:13;16182:5;;;;;;;;;;;;;;;;;16175:12;;16101:94;:::o;17094:248::-;17196:4;17253:6;17218:11;:23;17230:10;17218:23;;;;;;;;;;;;;;;:32;17242:7;17218:32;;;;;;;;;;;;;;;:41;;;;17296:7;17275:37;;17284:10;17275:37;;;17305:6;17275:37;;;;;;;;;;;;;;;;;;17330:4;17323:11;;17094:248;;;;:::o;16411:102::-;16466:7;16493:12;;16486:19;;16411:102;:::o;13974:27::-;;;;:::o;21503:416::-;21637:4;21701:2;21658:11;:19;21670:6;21658:19;;;;;;;;;;;;;;;:31;21678:10;21658:31;;;;;;;;;;;;;;;;:46;21654:200;;21755:87;21809:6;21755:87;;;;;;;;;;;;;;;;;:11;:19;21767:6;21755:19;;;;;;;;;;;;;;;:31;21775:10;21755:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;21721:11;:19;21733:6;21721:19;;;;;;;;;;;;;;;:31;21741:10;21721:31;;;;;;;;;;;;;;;:121;;;;21654:200;21871:40;21885:6;21893:9;21904:6;21871:13;:40::i;:::-;21864:47;;21503:416;;;;;:::o;16621:142::-;16674:7;16701:54;16739:15;16749:4;;;;;;;;;;;16739:9;:15::i;:::-;16701:33;16718:15;16728:4;;;;;;;;;;;16718:9;:15::i;:::-;16701:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16694:61;;16621:142;:::o;13714:29::-;;;;:::o;11851:103::-;11906:4;11941:5;;;;;;;;;;;11930:16;;:7;:16;;;11923:23;;11851:103;;;:::o;16309:94::-;16361:5;12749:2;16379:16;;16309:94;:::o;20068:357::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20285:20:::1;20261:21;;:44;;;;;;;;;;;;;;;;;;20334:18;20316:15;;:36;;;;;;;;;;;;;;;;;;20395:22;20373:19;;:44;;;;;;;;;;;;;;;;;;20068:357:::0;;;:::o;20433:309::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20623:14:::1;20599:21;;:38;;;;;;;;;;;;;;;;;;20664:16;20648:13;:32;;;;20719:15;20691:25;;:43;;;;;;;;;;;;;;;;;;20433:309:::0;;;:::o;13416:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13520:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13261:34::-;;;;;;;;;;;;;:::o;21019:139::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21112:6:::1;21106:3;:12;21098:21;;;::::0;::::1;;21147:3;21130:14;:20;;;;21019:139:::0;:::o;14422:40::-;;;;;;;;;;;;;:::o;17350:116::-;17405:4;17429:29;17437:7;17454:2;17429:7;:29::i;:::-;17422:36;;17350:116;;;:::o;16771:119::-;16837:7;16864:9;:18;16874:7;16864:18;;;;;;;;;;;;;;;;16857:25;;16771:119;;;:::o;12140:102::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12205:29:::1;12231:1;12205:17;:29::i;:::-;12140:102::o:0;13575:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;18996:395::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19137:4:::1;19119:23;;:6;:23;;;;:41;;;;;19156:4;;;;;;;;;;;19146:14;;:6;:14;;;;19119:41;19111:50;;;::::0;::::1;;19199:6;19172:16;:24;19189:6;19172:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19222:6;19218:166;;;19245:19;;;;;;;;;;;:28;;;19274:6;19282:1;19245:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19218:166;;;19317:19;;;;;;;;;;;:28;;;19346:6;19354:9;:17;19364:6;19354:17;;;;;;;;;;;;;;;;19317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19218:166;18996:395:::0;;:::o;13138:54::-;;;;:::o;18450:105::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18539:8:::1;18526:10;:21;;;;18450:105:::0;:::o;13199:53::-;;;;:::o;18297:145::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18427:7:::1;18393:21;:31;18415:8;18393:31;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;18297:145:::0;;:::o;16521:92::-;16573:7;16600:5;;;;;;;;;;;16593:12;;16521:92;:::o;21166:133::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21243:19:::1;;;;;;;;;;;:34;;;21278:12;21243:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21166:133:::0;:::o;13466:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16203:98::-;16253:13;16286:7;;;;;;;;;;;;;;;;;16279:14;;16203:98;:::o;13637:31::-;;;;:::o;19399:661::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19630:9:::1;19615:12;:24;;;;19663:12;19650:10;:25;;;;19701:15;19686:12;:30;;;;19735:8;19727:5;:16;;;;19773:19;19754:16;:38;;;;19816:135;19934:16;;19816:99;19909:5;;19816:74;19879:10;;19816:44;19847:12;;19816;;:30;;:44;;;;:::i;:::-;:62;;:74;;;;:::i;:::-;:92;;:99;;;;:::i;:::-;:117;;:135;;;;:::i;:::-;19805:8;:146;;;;19982:2;19970:8;;:14;;19962:23;;;::::0;::::1;;20016:36;20049:2;20016:28;20029:14;;20016:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;19996:17;:56;;;;19399:661:::0;;;;;:::o;18680:146::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18812:6:::1;18790:11;:19;18802:6;18790:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18680:146:::0;;:::o;14239:19::-;;;;;;;;;;;;;:::o;21307:188::-;21414:4;21443:44;21457:10;21469:9;21480:6;21443:13;:44::i;:::-;21436:51;;21307:188;;;;:::o;20750:261::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20890:19:::1;;;;;;;;;;;:43;;;20948:11;20974:18;20890:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20750:261:::0;;:::o;11524:94::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11606:4:::1;11584:14:::0;:19:::1;11599:3;11584:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11524:94:::0;:::o;14301:46::-;;;;;;;;;;;;;:::o;17680:208::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17774:2:::1;17762:8;:14;;17754:23;;;::::0;::::1;;17805:8;17788:14;:25;;;;17844:36;17877:2;17844:28;17857:14;;17844:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;17824:17;:56;;;;17680:208:::0;:::o;14267:25::-;;;;:::o;14053:36::-;;;;;;;;;;;;;:::o;14008:::-;;;;:::o;17975:103::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18062:8:::1;18047:12;:23;;;;17975:103:::0;:::o;14469:45::-;;;;;;;;;;;;;:::o;24877:205::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24950:1:::1;24944:3;:7;24936:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25019:3;25001:15;:21;;;;25068:6;25050:15;;:24;25033:14;:41;;;;24877:205:::0;:::o;16898:188::-;17018:7;17050:11;:19;17062:6;17050:19;;;;;;;;;;;;;;;:28;17070:7;17050:28;;;;;;;;;;;;;;;;17043:35;;16898:188;;;;:::o;18563:109::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18656:8:::1;18639:14;;:25;;;;;;;;;;;;;;;;;;18563:109:::0;:::o;11694:97::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:5:::1;11756:14;:19;11771:3;11756:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11694:97:::0;:::o;17476:98::-;17521:19;;;;;;;;;;;:33;;;17555:10;17521:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17476:98::o;12333:173::-;11222:19;11230:10;11222:7;:19::i;:::-;11214:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12417:3:::1;12409:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;12453:4;12431:14:::0;:19:::1;12446:3;12431:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12473:25;12494:3;12473:25;;;;;;;;;;;;;;;;;;;;12333:173:::0;:::o;14208:24::-;;;;;;;;;;;;;:::o;18834:154::-;11400:24;11413:10;11400:12;:24::i;:::-;11392:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18974:6:::1;18948:15;:23;18964:6;18948:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18834:154:::0;;:::o;12025:107::-;12081:4;12105:14;:19;12120:3;12105:19;;;;;;;;;;;;;;;;;;;;;;;;;12098:26;;12025:107;;;:::o;13931:34::-;;;;:::o;85:179::-;143:7;163:9;179:1;175;:5;163:17;;204:1;199;:6;;191:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;255:1;248:8;;;85:179;;;;:::o;648:246::-;706:7;735:1;730;:6;726:47;;;760:1;753:8;;;;726:47;783:9;799:1;795;:5;783:17;;828:1;823;819;:5;;;;;;:10;811:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;885:1;878:8;;;648:246;;;;;:::o;902:132::-;960:7;987:39;991:1;994;987:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;980:46;;902:132;;;;:::o;416:224::-;536:7;569:1;564;:6;;572:12;556:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;596:9;612:1;608;:5;596:17;;631:1;624:8;;;416:224;;;;;:::o;21927:2036::-;22053:4;22074:16;;;;;;;;;;;22070:97;;;22114:41;22129:6;22137:9;22148:6;22114:14;:41::i;:::-;22107:48;;;;22070:97;22213:4;22182:35;;:21;:29;22204:6;22182:29;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;22179:114;;;22240:41;22255:6;22263:9;22274:6;22240:14;:41::i;:::-;22233:48;;;;22179:114;22337:12;;22327:6;:22;;:49;;;;22353:15;:23;22369:6;22353:23;;;;;;;;;;;;;;;;;;;;;;;;;22327:49;22305:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22466:4;;;;;;;;;;;22452:18;;:10;:18;;;;:52;;;;;22488:16;;;;;;;;;;;22487:17;22452:52;:90;;;;;22521:21;;;;;;;;;;;22452:90;:148;;;;;22587:13;;22559:9;:24;22577:4;22559:24;;;;;;;;;;;;;;;;:41;;22452:148;22434:215;;;22627:10;:8;:10::i;:::-;22434:215;22666:10;:8;:10::i;:::-;22665:11;:32;;;;;22693:4;;;;;;;;;;;22680:17;;:9;:17;;;22665:32;22661:118;;;22742:1;22722:9;:17;22732:6;22722:17;;;;;;;;;;;;;;;;:21;22714:30;;;;;;22759:8;:6;:8::i;:::-;22661:118;22808:4;;;;;;;;;;;22795:17;;:9;:17;;;;:35;;;;;22826:4;;;;;;;;;;;22816:14;;:6;:14;;;;22795:35;22791:116;;;22854:41;22869:6;22877:9;22888:6;22854:14;:41::i;:::-;22847:48;;;;22791:116;22966:90;23002:6;22966:90;;;;;;;;;;;;;;;;;:9;:17;22976:6;22966:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;22946:9;:17;22956:6;22946:17;;;;;;;;;;;;;;;:110;;;;23074:15;:26;23090:9;23074:26;;;;;;;;;;;;;;;;;;;;;;;;;23073:27;:45;;;;;23104:14;;;;;;;;;;;23073:45;23069:133;;;23179:10;;23143:32;23168:6;23143:9;:20;23153:9;23143:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;23135:55;;;;;;23069:133;23214:19;23237:11;:19;23249:6;23237:19;;;;;;;;;;;;;;;;;;;;;;;;;23236:20;:47;;;;;23261:11;:22;23273:9;23261:22;;;;;;;;;;;;;;;;;;;;;;;;;23260:23;23236:47;:119;;23349:6;23236:119;;;23299:34;23307:6;23315:9;23326:6;23299:7;:34::i;:::-;23236:119;23214:141;;23389:37;23414:11;23389:9;:20;23399:9;23389:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23366:9;:20;23376:9;23366:20;;;;;;;;;;;;;;;:60;;;;23473:16;:24;23490:6;23473:24;;;;;;;;;;;;;;;;;;;;;;;;;23468:158;;23535:19;;;;;;;;;;;:28;;;23564:6;23572:9;:17;23582:6;23572:17;;;;;;;;;;;;;;;;23535:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23514:101;;;;;;23468:158;23643:16;:27;23660:9;23643:27;;;;;;;;;;;;;;;;;;;;;;;;;23638:167;;23708:19;;;;;;;;;;;:28;;;23737:9;23748;:20;23758:9;23748:20;;;;;;;;;;;;;;;;23708:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23687:107;;;;;;23638:167;23821:19;;;;;;;;;;;:27;;;23849:14;;23821:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23817:59;;;;;;23910:9;23893:40;;23902:6;23893:40;;;23921:11;23893:40;;;;;;;;;;;;;;;;;;23951:4;23944:11;;;21927:2036;;;;;;:::o;272:136::-;330:7;357:43;361:1;364;357:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;350:50;;272:136;;;;:::o;1042:223::-;1162:7;1194:1;1190;:5;1197:12;1182:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1221:9;1237:1;1233;:5;;;;;;1221:17;;1256:1;1249:8;;;1042:223;;;;;:::o;23971:401::-;24098:4;24135:90;24171:6;24135:90;;;;;;;;;;;;;;;;;:9;:17;24145:6;24135:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;24115:9;:17;24125:6;24115:17;;;;;;;;;;;;;;;:110;;;;24259:32;24284:6;24259:9;:20;24269:9;24259:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24236:9;:20;24246:9;24236:20;;;;;;;;;;;;;;;:55;;;;24324:9;24307:35;;24316:6;24307:35;;;24335:6;24307:35;;;;;;;;;;;;;;;;;;24360:4;24353:11;;23971:401;;;;;:::o;25090:1871::-;14641:4;14622:16;;:23;;;;;;;;;;;;;;;;;;25150:20:::1;25173:9;:24;25191:4;25173:24;;;;;;;;;;;;;;;;25150:47;;25210:21;25248:1;25234:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25210:40;;25279:4;25261;25266:1;25261:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25305:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;25295:4;25300:1;25295:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25331:6;;;;;;;;;;;:57;;;25403:12;25430:1;25446:4;25473;25493:15;25331:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25532:17;25552:21;25532:41;;25586:19;25608:8;;25586:30;;25629:26;25658:44;25690:11;25658:27;25672:12;;25658:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;25629:73;;25715:27;25745:66;25789:11;25745:25;25759:10;;25745:9;:13;;:25;;;;:::i;:::-;:29;;:66;;;;:::i;:::-;25715:96;;25822:27;25852:72;25902:11;25852:31;25866:16;;25852:9;:13;;:31;;;;:::i;:::-;:35;;:72;;;;:::i;:::-;25822:102;;25935:26;25964:68;26010:11;25964:27;25978:12;;25964:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;25935:97;;26043:24;26070:37;26095:11;26070:20;26084:5;;26070:9;:13;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;26043:64;;26137:19;;;;;;;;;;;:27;;;26172:19;26137:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;26120:95;;;;;;26228:15;26257;;;;;;;;;;;26249:29;;26300:18;26338:5;26249:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26227:131;;;26370:16;26400:6;;;;;;;;;;;26392:20;;26434:16;26470:5;26392:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26369:121;;;26504:16;26534:21;;;;;;;;;;;26526:35;;26583:18;26621:5;26526:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26503:138;;;26656:16;26686:19;;;;;;;;;;;26678:33;;26733:19;26772:5;26678:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26655:137;;;26858:5;26845:18;;26888:5;26874:19;;26918:5;26904:19;;26948:5;26934:19;;14656:1;;;;;;;;;;;;;14687:5:::0;14668:16;;:24;;;;;;;;;;;;;;;;;;25090:1871::o;17582:90::-;17625:4;17663:1;17649:10;;:15;;17642:22;;17582:90;:::o;17896:71::-;17947:12;17934:10;:25;;;;17896:71::o;24380:489::-;24500:7;24520:21;24552:9;24544:17;;:4;;;;;;;;;;;:17;;;:74;;24610:8;;24544:74;;;24577:17;;24544:74;24520:98;;24629:17;24649:34;24679:3;24649:25;24660:13;24649:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24629:54;;24723:39;24752:9;24723;:24;24741:4;24723:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;24696:9;:24;24714:4;24696:24;;;;;;;;;;;;;;;:66;;;;24803:4;24778:42;;24787:6;24778:42;;;24810:9;24778:42;;;;;;;;;;;;;;;;;;24840:21;24851:9;24840:6;:10;;:21;;;;:::i;:::-;24833:28;;;;24380:489;;;;;:::o
Swarm Source
ipfs://d5173c3c6a1361f5fde0e78b8d12e10a30995bd10245c51d63c5d12055fb57e9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,268.86 | 0.000000000000000002 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.