Token BUYTHISYOUCROJEETS
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
1,000,000,000 CROJEETS
Holders:
7 addresses
Contract:
Decimals:
9
Filtered by Token Holder (Mad Meerkat Finance: Master Meerkat & Router)
Balance
10 CROJEETSValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BUYTHISYOUCROJEETS
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-04-01 */ /** */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract BUYTHISYOUCROJEETS is Context, IERC20, Ownable { using Address for address payable; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => bool) public allowedTransfer; mapping (address => bool) private _isBlacklisted; address[] private _excluded; bool public tradingEnabled; bool public swapEnabled; bool private swapping; //Anti Dump mapping(address => uint256) private _lastSell; bool public coolDownEnabled = true; uint256 public coolDownTime = 5 seconds; modifier antiBot(address account){ require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet"); _; } IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1_000_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 1_000_000 * 10**9; uint256 public maxBuyLimit = 10_000_000 * 10**9; uint256 public maxSellLimit = 10_000_000 * 10**9; uint256 public maxWalletLimit = 10_000_000 * 10**9; uint256 public genesis_block; uint256 private deadline; address public marketingWallet = 0x69eA21172Ad7E0ba62d85C0877d60dF2D09815d6; address public devWallet = 0xdE7c171D58ab8d7239Af372e7558c08A8cb90cD3; address public teamWallet = 0x5649aCEe71C24f6bC220Db44e09861B1a3450792; string private constant _name = "BUYTHISYOUCROJEETS"; string private constant _symbol = "CROJEETS"; struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 dev; uint256 team; } Taxes private launchtax; Taxes public taxes = Taxes(0, 2, 1, 7, 0); Taxes public sellTaxes = Taxes(0, 2, 1, 7, 0); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 liquidity; uint256 dev; uint256 team; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 rDev; uint256 rteam; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; uint256 tDev; uint256 tteam; } event FeesChanged(); event UpdatedRouter(address oldRouter, address newRouter); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor (address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[devWallet] = true; _isExcludedFromFee[teamWallet] = true; allowedTransfer[address(this)] = true; allowedTransfer[owner()] = true; allowedTransfer[pair] = true; allowedTransfer[marketingWallet] = true; allowedTransfer[devWallet] = true; allowedTransfer[teamWallet] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } //override ERC20: function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override antiBot(msg.sender) returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(sender) returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public antiBot(msg.sender) returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public antiBot(msg.sender) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rTransferAmount; } } function setTradingStatus( bool state, uint256 _deadline, uint256 rfi, uint256 marketing, uint256 liquidity, uint256 dev, uint256 team ) external onlyOwner { tradingEnabled = state; swapEnabled = state; deadline = _deadline; launchtax = Taxes(rfi, marketing, liquidity, dev, team); if (state == true) genesis_block = block.number; } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount/currentRate; } //@dev kept original RFI naming -> "reward" as in reflection function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _dev, uint256 _team) public onlyOwner { taxes = Taxes(_rfi,_marketing,_liquidity,_dev,_team); emit FeesChanged(); } function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _dev, uint256 _team) public onlyOwner { sellTaxes = Taxes(_rfi,_marketing,_liquidity,_dev,_team); emit FeesChanged(); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing +=tMarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tMarketing; } _rOwned[address(this)] +=rMarketing; } function _takeDev(uint256 rDev, uint256 tDev) private { totFeesPaid.dev +=tDev; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tDev; } _rOwned[address(this)] +=rDev; } function _taketeam(uint256 rteam, uint256 tteam) private { totFeesPaid.team +=tteam; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tteam; } _rOwned[address(this)] +=rteam; } function _getValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate()); (to_return.rDev, to_return.rteam) = _getRValues2(to_return, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if (isSell && !useLaunchTax) temp = sellTaxes; else if (!useLaunchTax) temp = taxes; else temp = launchtax; s.tRfi = tAmount*temp.rfi/100; s.tMarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tDev = tAmount*temp.dev/100; s.tteam = tAmount*temp.team/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity-s.tDev-s.tteam; return s; } function _getRValues1(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rLiquidity){ rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0); } rRfi = s.tRfi*currentRate; rMarketing = s.tMarketing*currentRate; rLiquidity = s.tLiquidity*currentRate; uint256 rDev = s.tDev*currentRate; uint256 rteam = s.tteam*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rLiquidity-rDev-rteam; return (rAmount, rTransferAmount, rRfi,rMarketing,rLiquidity); } function _getRValues2(valuesFromGetValues memory s, bool takeFee, uint256 currentRate) private pure returns (uint256 rDev,uint256 rteam) { if(!takeFee) { return(0,0); } rDev = s.tDev*currentRate; rteam = s.tteam*currentRate; return (rDev,rteam); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_excluded[i]]; tSupply = tSupply-_tOwned[_excluded[i]]; } if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(tradingEnabled, "Trading not active"); } if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block + 3) { require(to != pair, "Sells not allowed for first 3 blocks"); } if(from == pair && !_isExcludedFromFee[to] && !swapping){ require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){ require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if(to != pair){ require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(coolDownEnabled){ uint256 timePassed = block.timestamp - _lastSell[from]; require(timePassed >= coolDownTime, "Cooldown enabled"); _lastSell[from] = block.timestamp; } } if(balanceOf(from) - amount <= 10 * 10**decimals()) amount -= (10 * 10**decimals() + amount - balanceOf(from)); bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ if(to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes); else swapAndLiquify(swapTokensAtAmount, taxes); } bool takeFee = true; bool isSell = false; if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if(to == pair) isSell = true; _tokenTransfer(from, to, amount, takeFee, isSell); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { bool useLaunchTax = !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && block.number <= genesis_block + deadline; valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing + s.tDev+ s.tteam); } if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing); if(s.rteam > 0 || s.tteam > 0) _taketeam(s.rteam, s.tteam); if(s.rDev > 0 || s.tDev > 0) _takeDev(s.rDev, s.tDev); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{ uint256 denominator = (temp.liquidity + temp.marketing + temp.dev + temp.team) * 2; uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - temp.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * temp.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * temp.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * temp.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } uint256 buybackAmt = unitBalance * 2 * temp.team; if(buybackAmt > 0){ payable(teamWallet).sendValue(buybackAmt); } } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapTokensForBNB(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isExcludedFromFee[accounts[i]] = state; } } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateteamWallet(address newWallet) external onlyOwner{ teamWallet = newWallet; } function updateCooldown(bool state, uint256 time) external onlyOwner{ coolDownTime = time * 1 seconds; coolDownEnabled = state; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function updateIsBlacklisted(address account, bool state) external onlyOwner{ _isBlacklisted[account] = state; } function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function updateAllowedTransfer(address account, bool state) external onlyOwner{ allowedTransfer[account] = state; } function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner{ maxBuyLimit = maxBuy * 10**decimals(); maxSellLimit = maxSell * 10**decimals(); } function updateMaxWalletlimit(uint256 amount) external onlyOwner{ maxWalletLimit = amount * 10**decimals(); } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateteamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600b805460ff191660011790556005600c55620000246009600a62000a57565b6200003490633b9aca0062000a68565b600f819055620000479060001962000aa0565b620000559060001962000ab7565b60105566038d7ea4c68000601155662386f26fc1000060128190556013819055601455601780546001600160a01b03199081167369ea21172ad7e0ba62d85c0877d60df2d09815d61790915560188054821673de7c171d58ab8d7239af372e7558c08a8cb90cd317905560198054909116735649acee71c24f6bc220db44e09861b1a34507921790556040805160a080820183526000808352600260208085018290526001858701819052600760608088018290526080978801869052601f869055848455602183905560228290556023869055885196870189528587529286018490529685018190529084018690529290930181905260248190556025929092556026556027919091556028553480156200017057600080fd5b506040516200472338038062004723833981016040819052620001939162000ad1565b6200019e3362000518565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a919062000ad1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e919062000ad1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f2919062000ad1565b600d80546001600160a01b038086166001600160a01b031992831617909255600e805492841692909116821790559091506200032e9062000568565b60105460016000620003486000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003976000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601754821681526004845282812080548616600190811790915560185483168252838220805487168217905560195490921681528281208054861683179055308152600693849052918220805490941681179093556200042d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e54821681526006909352818320805485166001908117909155601754821684528284208054861682179055601854821684528284208054861682179055601954909116835291208054909216179055620004bf6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516200050791815260200190565b60405180910390a350505062000b45565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005c85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620006335760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620005bf565b6001600160a01b0381166000908152600160205260409020541562000690576001600160a01b0381166000908152600160205260409020546200067690620006f6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b60006010548211156200075f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620005bf565b60006200076b62000780565b905062000779818462000afc565b9392505050565b600080806200078e620007a6565b90925090506200079f818362000afc565b9250505090565b601054600f546000918291825b6008548110156200090e57826001600060088481548110620007d957620007d962000b13565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118062000848575081600260006008848154811062000821576200082162000b13565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200085f57601054600f54945094505050509091565b600160006008838154811062000879576200087962000b13565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008aa908462000ab7565b92506002600060088381548110620008c657620008c662000b13565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008f7908362000ab7565b915080620009058162000b29565b915050620007b3565b50600f5460105462000921919062000afc565b8210156200093957601054600f549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620009995781600019048211156200097d576200097d62000942565b808516156200098b57918102915b93841c93908002906200095d565b509250929050565b600082620009b25750600162000a51565b81620009c15750600062000a51565b8160018114620009da5760028114620009e55762000a05565b600191505062000a51565b60ff841115620009f957620009f962000942565b50506001821b62000a51565b5060208310610133831016604e8410600b841016171562000a2a575081810a62000a51565b62000a36838362000958565b806000190482111562000a4d5762000a4d62000942565b0290505b92915050565b60006200077960ff841683620009a1565b600081600019048311821515161562000a855762000a8562000942565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000ab25762000ab262000a8a565b500690565b60008282101562000acc5762000acc62000942565b500390565b60006020828403121562000ae457600080fd5b81516001600160a01b03811681146200077957600080fd5b60008262000b0e5762000b0e62000a8a565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820162000b3e5762000b3e62000942565b5060010190565b613bce8062000b556000396000f3fe6080604052600436106103855760003560e01c80636ddd1713116101d1578063a9059cbb11610102578063dd62ed3e116100a0578063ee36e3591161006f578063ee36e35914610b02578063f2fde38b14610b1c578063f66895a314610b3c578063f887ea4014610b6357600080fd5b8063dd62ed3e14610a66578063e2f4560514610aac578063e517f2b914610ac2578063ea2f0b3714610ae257600080fd5b8063c791fc54116100dc578063c791fc54146109f0578063d257b34f14610a10578063d2ce0db214610a30578063d8672e5114610a4657600080fd5b8063a9059cbb14610990578063aacebbe3146109b0578063b5c57145146109d057600080fd5b80638e2839ff1161016f57806395d89b411161014957806395d89b41146108f85780639ba5e4d514610929578063a457c2d714610950578063a8aa1b311461097057600080fd5b80638e2839ff146108985780638ea5220f146108b8578063924de9b7146108d857600080fd5b8063728f8eea116101ab578063728f8eea146107d257806375f0a8741461082157806388f82020146108415780638da5cb5b1461087a57600080fd5b80636ddd17131461077e57806370a082311461079d578063715018a6146107bd57600080fd5b80634549b039116102b65780635b24ea5e11610254578063652e2f0411610223578063652e2f041461071c57806366a88d96146107325780636aa5b37f146107485780636baf8df21461075e57600080fd5b80635b24ea5e1461068c5780635e19678d146106ac5780635fcefa42146106cc57806362695eae146106ec57600080fd5b806352390c021161029057806352390c02146105db5780635342acb4146105fb57806359759f6114610634578063599270441461065457600080fd5b80634549b0391461058157806347c23092146105a15780634ada218b146105c157600080fd5b80632d8381191161032357806339509351116102fd578063395093511461050157806340b28c2f14610521578063437823ec14610541578063441b1d301461056157600080fd5b80632d838119146104a5578063313ce567146104c55780633685d419146104e157600080fd5b806318160ddd1161035f57806318160ddd146104305780631816467f1461044f57806323b872dd1461046f578063274a533c1461048f57600080fd5b806306fdde0314610391578063095ea7b3146103de57806313f97a8e1461040e57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b5060408051808201909152601281527142555954484953594f5543524f4a4545545360701b60208201525b6040516103d591906134f9565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f9366004613573565b610b83565b60405190151581526020016103d5565b34801561041a57600080fd5b5061042e6104293660046135ce565b610beb565b005b34801561043c57600080fd5b50600f545b6040519081526020016103d5565b34801561045b57600080fd5b5061042e61046a3660046136a5565b610c81565b34801561047b57600080fd5b506103fe61048a3660046136c2565b610ccd565b34801561049b57600080fd5b5061044160155481565b3480156104b157600080fd5b506104416104c0366004613703565b610dc7565b3480156104d157600080fd5b50604051600981526020016103d5565b3480156104ed57600080fd5b5061042e6104fc3660046136a5565b610e4b565b34801561050d57600080fd5b506103fe61051c366004613573565b611001565b34801561052d57600080fd5b5061042e61053c36600461371c565b611081565b34801561054d57600080fd5b5061042e61055c3660046136a5565b6110d9565b34801561056d57600080fd5b5061042e61057c366004613703565b611127565b34801561058d57600080fd5b5061044161059c366004613755565b6111ce565b3480156105ad57600080fd5b5061042e6105bc3660046136c2565b611264565b3480156105cd57600080fd5b506009546103fe9060ff1681565b3480156105e757600080fd5b5061042e6105f63660046136a5565b611307565b34801561060757600080fd5b506103fe6106163660046136a5565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064057600080fd5b5061042e61064f36600461377a565b61145a565b34801561066057600080fd5b50601954610674906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b34801561069857600080fd5b5061042e6106a736600461379c565b6114ba565b3480156106b857600080fd5b5061042e6106c73660046137ca565b61150f565b3480156106d857600080fd5b5061042e6106e736600461381f565b6115b3565b3480156106f857600080fd5b506103fe6107073660046136a5565b60066020526000908152604090205460ff1681565b34801561072857600080fd5b5061044160135481565b34801561073e57600080fd5b5061044160145481565b34801561075457600080fd5b5061044160125481565b34801561076a57600080fd5b5061042e6107793660046136a5565b61164c565b34801561078a57600080fd5b506009546103fe90610100900460ff1681565b3480156107a957600080fd5b506104416107b83660046136a5565b611698565b3480156107c957600080fd5b5061042e6116f7565b3480156107de57600080fd5b50601f546020546021546022546023546107f9949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103d5565b34801561082d57600080fd5b50601754610674906001600160a01b031681565b34801561084d57600080fd5b506103fe61085c3660046136a5565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088657600080fd5b506000546001600160a01b0316610674565b3480156108a457600080fd5b5061042e6108b33660046135ce565b61172d565b3480156108c457600080fd5b50601854610674906001600160a01b031681565b3480156108e457600080fd5b5061042e6108f336600461385a565b6117be565b34801561090457600080fd5b5060408051808201909152600881526743524f4a4545545360c01b60208201526103c8565b34801561093557600080fd5b50602954602a54602b54602c54602d546107f9949392919085565b34801561095c57600080fd5b506103fe61096b366004613573565b611802565b34801561097c57600080fd5b50600e54610674906001600160a01b031681565b34801561099c57600080fd5b506103fe6109ab366004613573565b6118e8565b3480156109bc57600080fd5b5061042e6109cb3660046136a5565b61193d565b3480156109dc57600080fd5b5061042e6109eb36600461379c565b611989565b3480156109fc57600080fd5b5061042e610a0b36600461381f565b6119de565b348015610a1c57600080fd5b5061042e610a2b366004613703565b611a76565b348015610a3c57600080fd5b50610441600c5481565b348015610a5257600080fd5b5061042e610a61366004613703565b611abc565b348015610a7257600080fd5b50610441610a8136600461371c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ab857600080fd5b5061044160115481565b348015610ace57600080fd5b5061042e610add366004613877565b611b02565b348015610aee57600080fd5b5061042e610afd3660046136a5565b611b4e565b348015610b0e57600080fd5b50600b546103fe9060ff1681565b348015610b2857600080fd5b5061042e610b373660046136a5565b611b99565b348015610b4857600080fd5b506024546025546026546027546028546107f9949392919085565b348015610b6f57600080fd5b50600d54610674906001600160a01b031681565b600954600090339060ff1680610bb157506001600160a01b03811660009081526006602052604090205460ff165b610bd65760405162461bcd60e51b8152600401610bcd90613895565b60405180910390fd5b610be1338585611c34565b5060019392505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b8152600401610bcd906138cc565b60005b8251811015610c7c578160076000858481518110610c3857610c38613901565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c748161392d565b915050610c18565b505050565b6000546001600160a01b03163314610cab5760405162461bcd60e51b8152600401610bcd906138cc565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600954600090849060ff1680610cfb57506001600160a01b03811660009081526006602052604090205460ff165b610d175760405162461bcd60e51b8152600401610bcd90613895565b610d22858585611d58565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610da75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610bcd565b610dbb8633610db68785613946565b611c34565b50600195945050505050565b6000601054821115610e2e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610bcd565b6000610e386125e2565b9050610e44818461395d565b9392505050565b6000546001600160a01b03163314610e755760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03811660009081526005602052604090205460ff16610edd5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610bcd565b60005b600854811015610ffd57816001600160a01b031660088281548110610f0757610f07613901565b6000918252602090912001546001600160a01b031603610feb5760088054610f3190600190613946565b81548110610f4157610f41613901565b600091825260209091200154600880546001600160a01b039092169183908110610f6d57610f6d613901565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610fc557610fc561397f565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ff58161392d565b915050610ee0565b5050565b600954600090339060ff168061102f57506001600160a01b03811660009081526006602052604090205460ff165b61104b5760405162461bcd60e51b8152600401610bcd90613895565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610be191908690610db6908790613995565b6000546001600160a01b031633146110ab5760405162461bcd60e51b8152600401610bcd906138cc565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146111035760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111515760405162461bcd60e51b8152600401610bcd906138cc565b804710156111a15760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610bcd565b604051339082156108fc029083906000818181858888f19350505050158015610ffd573d6000803e3d6000fd5b6000600f548311156112225760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610bcd565b81611241576000611237846001600080612605565b51915061125e9050565b6000611251846001600080612605565b60200151915061125e9050565b92915050565b6000546001600160a01b0316331461128e5760405162461bcd60e51b8152600401610bcd906138cc565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906139ad565b50505050565b6000546001600160a01b031633146113315760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03811660009081526005602052604090205460ff161561139a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bcd565b6001600160a01b038116600090815260016020526040902054156113f4576001600160a01b0381166000908152600160205260409020546113da90610dc7565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146114845760405162461bcd60e51b8152600401610bcd906138cc565b6114906009600a613aae565b61149a9083613abd565b6012556114a96009600a613aae565b6114b39082613abd565b6013555050565b6000546001600160a01b031633146114e45760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115395760405162461bcd60e51b8152600401610bcd906138cc565b6009805461ffff191661ff00198915159081169190911761010082021790915560168790556040805160a0810182528781526020810187905290810185905260608101849052608001829052601a869055601b859055601c849055601d839055601e8290556001036115aa57436015555b50505050505050565b6000546001600160a01b031633146115dd5760405162461bcd60e51b8152600401610bcd906138cc565b6040805160a0810182528681526020808201879052818301869052606082018590526080909101839052601f879055859055602184905560228390556023829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b031633146116765760405162461bcd60e51b8152600401610bcd906138cc565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604081205460ff16156116d557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461125e90610dc7565b6000546001600160a01b031633146117215760405162461bcd60e51b8152600401610bcd906138cc565b61172b6000612669565b565b6000546001600160a01b031633146117575760405162461bcd60e51b8152600401610bcd906138cc565b60005b8251811015610c7c57816004600085848151811061177a5761177a613901565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806117b68161392d565b91505061175a565b6000546001600160a01b031633146117e85760405162461bcd60e51b8152600401610bcd906138cc565b600980549115156101000261ff0019909216919091179055565b600954600090339060ff168061183057506001600160a01b03811660009081526006602052604090205460ff165b61184c5760405162461bcd60e51b8152600401610bcd90613895565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156118ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bcd565b6118dd3386610db68785613946565b506001949350505050565b600954600090339060ff168061191657506001600160a01b03811660009081526006602052604090205460ff165b6119325760405162461bcd60e51b8152600401610bcd90613895565b610be1338585611d58565b6000546001600160a01b031633146119675760405162461bcd60e51b8152600401610bcd906138cc565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119b35760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a085760405162461bcd60e51b8152600401610bcd906138cc565b6040805160a081018252868152602081018690528082018590526060810184905260800182905260248690556025859055602684905560278390556028829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b03163314611aa05760405162461bcd60e51b8152600401610bcd906138cc565b611aac6009600a613aae565b611ab69082613abd565b60115550565b6000546001600160a01b03163314611ae65760405162461bcd60e51b8152600401610bcd906138cc565b611af26009600a613aae565b611afc9082613abd565b60145550565b6000546001600160a01b03163314611b2c5760405162461bcd60e51b8152600401610bcd906138cc565b611b37816001613abd565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611b785760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611bc35760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b038116611c285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bcd565b611c3181612669565b50565b6001600160a01b038316611c965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bcd565b6001600160a01b038216611cf75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bcd565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611dbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bcd565b6001600160a01b038216611e1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bcd565b60008111611e805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bcd565b611e8983611698565b811115611ef25760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610bcd565b6001600160a01b03831660009081526007602052604090205460ff16158015611f3457506001600160a01b03821660009081526007602052604090205460ff16155b611f705760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610bcd565b6001600160a01b03831660009081526004602052604090205460ff16158015611fb257506001600160a01b03821660009081526004602052604090205460ff16155b15611ffe5760095460ff16611ffe5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610bcd565b6001600160a01b03831660009081526004602052604090205460ff1615801561204057506001600160a01b03821660009081526004602052604090205460ff16155b80156120595750601554612055906003613995565b4311155b156120c857600e546001600160a01b03908116908316036120c85760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610bcd565b600e546001600160a01b0384811691161480156120fe57506001600160a01b03821660009081526004602052604090205460ff16155b8015612113575060095462010000900460ff16155b156121cf5760125481111561216a5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610bcd565b6014548161217784611698565b6121819190613995565b11156121cf5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bcd565b600e546001600160a01b0384811691161480159061220657506001600160a01b03821660009081526004602052604090205460ff16155b801561222b57506001600160a01b03831660009081526004602052604090205460ff16155b8015612240575060095462010000900460ff16155b156123a3576013548111156122975760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610bcd565b600e546001600160a01b0383811691161461231157601454816122b984611698565b6122c39190613995565b11156123115760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bcd565b600b5460ff16156123a3576001600160a01b0383166000908152600a602052604081205461233f9042613946565b9050600c548110156123865760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610bcd565b506001600160a01b0383166000908152600a602052604090204290555b6123af6009600a613aae565b6123ba90600a613abd565b816123c485611698565b6123ce9190613946565b11612415576123dc83611698565b816123e96009600a613aae565b6123f490600a613abd565b6123fe9190613995565b6124089190613946565b6124129082613946565b90505b600060115461242330611698565b600954911115915062010000900460ff161580156124485750600954610100900460ff165b80156124515750805b801561246b5750600e546001600160a01b03858116911614155b801561249057506001600160a01b03841660009081526004602052604090205460ff16155b80156124b557506001600160a01b03831660009081526004602052604090205460ff16155b1561255157600e546001600160a01b0390811690841603612513576011546040805160a08101825260245481526025546020820152602654918101919091526027546060820152602854608082015261250e91906126b9565b612551565b6011546040805160a081018252601f5481526020805490820152602154918101919091526022546060820152602354608082015261255191906126b9565b60095460019060009062010000900460ff168061258657506001600160a01b03861660009081526004602052604090205460ff165b806125a957506001600160a01b03851660009081526004602052604090205460ff165b156125b357600091505b600e546001600160a01b03908116908616036125cd575060015b6125da868686858561285f565b505050505050565b60008060006125ef612bcf565b90925090506125fe818361395d565b9250505090565b61260d613491565b61261985858585612d52565b905061262e8186866126296125e2565b612f54565b6080860152606085015260408401526020830152815261265681856126516125e2565b613025565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055608081015160608201516020830151604084015160009392916126ec91613995565b6126f69190613995565b6127009190613995565b61270b906002613abd565b90506000818360400151856127209190613abd565b61272a919061395d565b905060006127388286613946565b90504761274482613067565b60006127508247613946565b905060008660400151866127649190613946565b61276e908361395d565b905060008760400151826127829190613abd565b905080156127945761279486826131b9565b60208801516000906127a7846002613abd565b6127b19190613abd565b905080156127cf576017546127cf906001600160a01b03168261328e565b60608901516000906127e2856002613abd565b6127ec9190613abd565b9050801561280a5760185461280a906001600160a01b03168261328e565b60808a015160009061281d866002613abd565b6128279190613abd565b9050801561284557601954612845906001600160a01b03168261328e565b50506009805462ff00001916905550505050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156128a157506001600160a01b03851660009081526004602052604090205460ff16155b80156128bc57506016546015546128b89190613995565b4311155b905060006128cc85858585612605565b6001600160a01b03881660009081526005602052604090205490915060ff161561292e576001600160a01b038716600090815260026020526040902054612914908690613946565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff16156129915760e08101516001600160a01b0387166000908152600260205260409020546129779190613995565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546129b69190613946565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546129ed9190613995565b6001600160a01b0387166000908152600160205260409081902091909155810151151580612a2057506000816101000151115b15612a3857612a3881604001518261010001516133a7565b600081608001511180612a5057506000816101400151115b15612ae557612a6881608001518261014001516133dc565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101800151846101600151856101200151866101400151612abf9190613995565b612ac99190613995565b612ad39190613995565b60405190815260200160405180910390a35b600081606001511180612afd57506000816101200151115b15612b1557612b158160600151826101200151613452565b60008160c001511180612b2d57506000816101800151115b15612b4557612b458160c00151826101800151613467565b60008160a001511180612b5d57506000816101600151115b15612b7557612b758160a0015182610160015161347c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151604051612bbe91815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612d2157826001600060088481548110612bfe57612bfe613901565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612c695750816002600060088481548110612c4257612c42613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612c7f57601054600f54945094505050509091565b6001600060088381548110612c9657612c96613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612cc59084613946565b92506002600060088381548110612cde57612cde613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612d0d9083613946565b915080612d198161392d565b915050612bdc565b50600f54601054612d32919061395d565b821015612d4957601054600f549350935050509091565b90939092509050565b612d5a613491565b83612d6b5760e08101859052612661565b612d9d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b838015612da8575082155b15612de457506040805160a081018252602454815260255460208201526026549181019190915260275460608201526028546080820152612e53565b82612e2057506040805160a081018252601f54815260208054908201526021549181019190915260225460608201526023546080820152612e53565b506040805160a081018252601a548152601b546020820152601c5491810191909152601d546060820152601e5460808201525b8051606490612e629088613abd565b612e6c919061395d565b6101008301526020810151606490612e849088613abd565b612e8e919061395d565b6101208301526040810151606490612ea69088613abd565b612eb0919061395d565b6101408301526060810151606490612ec89088613abd565b612ed2919061395d565b6101608301526080810151606490612eea9088613abd565b612ef4919061395d565b6101808301819052610160830151610140840151610120850151610100860151612f1e908b613946565b612f289190613946565b612f329190613946565b612f3c9190613946565b612f469190613946565b60e083015250949350505050565b600080808080612f648689613abd565b945086612f7c5750839250600091508190508061301a565b85896101000151612f8d9190613abd565b925085896101200151612fa09190613abd565b915085896101400151612fb39190613abd565b90506000868a6101600151612fc89190613abd565b90506000878b6101800151612fdd9190613abd565b905080828486612fed898c613946565b612ff79190613946565b6130019190613946565b61300b9190613946565b6130159190613946565b955050505b945094509450945094565b600080836130385750600090508061305f565b828561016001516130499190613abd565b91508285610180015161305c9190613abd565b90505b935093915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061309c5761309c613901565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156130f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131199190613adc565b8160018151811061312c5761312c613901565b6001600160a01b039283166020918202929092010152600d546131529130911684611c34565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061318b908590600090869030904290600401613af9565b600060405180830381600087803b1580156131a557600080fd5b505af11580156125da573d6000803e3d6000fd5b600d546131d19030906001600160a01b031684611c34565b600d546001600160a01b031663f305d7198230856000806131fa6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015613262573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132879190613b6a565b5050505050565b804710156132de5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610bcd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461332b576040519150601f19603f3d011682016040523d82523d6000602084013e613330565b606091505b5050905080610c7c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610bcd565b81601060008282546133b99190613946565b9091555050602980548291906000906133d3908490613995565b90915550505050565b80602960020160008282546133f19190613995565b90915550503060009081526005602052604090205460ff161561343357306000908152600260205260408120805483929061342d908490613995565b90915550505b30600090815260016020526040812080548492906133d3908490613995565b80602960010160008282546133f19190613995565b80602960040160008282546133f19190613995565b80602960030160008282546133f19190613995565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156135265785810183015185820160400152820161350a565b81811115613538576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c3157600080fd5b803561356e8161354e565b919050565b6000806040838503121561358657600080fd5b82356135918161354e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611c3157600080fd5b803561356e816135b5565b600080604083850312156135e157600080fd5b823567ffffffffffffffff808211156135f957600080fd5b818501915085601f83011261360d57600080fd5b81356020828211156136215761362161359f565b8160051b604051601f19603f830116810181811086821117156136465761364661359f565b60405292835281830193508481018201928984111561366457600080fd5b948201945b838610156136895761367a86613563565b85529482019493820193613669565b965061369890508782016135c3565b9450505050509250929050565b6000602082840312156136b757600080fd5b8135610e448161354e565b6000806000606084860312156136d757600080fd5b83356136e28161354e565b925060208401356136f28161354e565b929592945050506040919091013590565b60006020828403121561371557600080fd5b5035919050565b6000806040838503121561372f57600080fd5b823561373a8161354e565b9150602083013561374a8161354e565b809150509250929050565b6000806040838503121561376857600080fd5b82359150602083013561374a816135b5565b6000806040838503121561378d57600080fd5b50508035926020909101359150565b600080604083850312156137af57600080fd5b82356137ba8161354e565b9150602083013561374a816135b5565b600080600080600080600060e0888a0312156137e557600080fd5b87356137f0816135b5565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b600080600080600060a0868803121561383757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561386c57600080fd5b8135610e44816135b5565b6000806040838503121561388a57600080fd5b8235613591816135b5565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161393f5761393f613917565b5060010190565b60008282101561395857613958613917565b500390565b60008261397a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b600082198211156139a8576139a8613917565b500190565b6000602082840312156139bf57600080fd5b8151610e44816135b5565b600181815b80851115613a055781600019048211156139eb576139eb613917565b808516156139f857918102915b93841c93908002906139cf565b509250929050565b600082613a1c5750600161125e565b81613a295750600061125e565b8160018114613a3f5760028114613a4957613a65565b600191505061125e565b60ff841115613a5a57613a5a613917565b50506001821b61125e565b5060208310610133831016604e8410600b8410161715613a88575081810a61125e565b613a9283836139ca565b8060001904821115613aa657613aa6613917565b029392505050565b6000610e4460ff841683613a0d565b6000816000190483118215151615613ad757613ad7613917565b500290565b600060208284031215613aee57600080fd5b8151610e448161354e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613b495784516001600160a01b031683529383019391830191600101613b24565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215613b7f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202a748b022263d41b798684546f666b6fd1b4fd0e7e13f8ae12e0ffe1c62ae39464736f6c634300080d0033000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
Deployed Bytecode
0x6080604052600436106103855760003560e01c80636ddd1713116101d1578063a9059cbb11610102578063dd62ed3e116100a0578063ee36e3591161006f578063ee36e35914610b02578063f2fde38b14610b1c578063f66895a314610b3c578063f887ea4014610b6357600080fd5b8063dd62ed3e14610a66578063e2f4560514610aac578063e517f2b914610ac2578063ea2f0b3714610ae257600080fd5b8063c791fc54116100dc578063c791fc54146109f0578063d257b34f14610a10578063d2ce0db214610a30578063d8672e5114610a4657600080fd5b8063a9059cbb14610990578063aacebbe3146109b0578063b5c57145146109d057600080fd5b80638e2839ff1161016f57806395d89b411161014957806395d89b41146108f85780639ba5e4d514610929578063a457c2d714610950578063a8aa1b311461097057600080fd5b80638e2839ff146108985780638ea5220f146108b8578063924de9b7146108d857600080fd5b8063728f8eea116101ab578063728f8eea146107d257806375f0a8741461082157806388f82020146108415780638da5cb5b1461087a57600080fd5b80636ddd17131461077e57806370a082311461079d578063715018a6146107bd57600080fd5b80634549b039116102b65780635b24ea5e11610254578063652e2f0411610223578063652e2f041461071c57806366a88d96146107325780636aa5b37f146107485780636baf8df21461075e57600080fd5b80635b24ea5e1461068c5780635e19678d146106ac5780635fcefa42146106cc57806362695eae146106ec57600080fd5b806352390c021161029057806352390c02146105db5780635342acb4146105fb57806359759f6114610634578063599270441461065457600080fd5b80634549b0391461058157806347c23092146105a15780634ada218b146105c157600080fd5b80632d8381191161032357806339509351116102fd578063395093511461050157806340b28c2f14610521578063437823ec14610541578063441b1d301461056157600080fd5b80632d838119146104a5578063313ce567146104c55780633685d419146104e157600080fd5b806318160ddd1161035f57806318160ddd146104305780631816467f1461044f57806323b872dd1461046f578063274a533c1461048f57600080fd5b806306fdde0314610391578063095ea7b3146103de57806313f97a8e1461040e57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b5060408051808201909152601281527142555954484953594f5543524f4a4545545360701b60208201525b6040516103d591906134f9565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f9366004613573565b610b83565b60405190151581526020016103d5565b34801561041a57600080fd5b5061042e6104293660046135ce565b610beb565b005b34801561043c57600080fd5b50600f545b6040519081526020016103d5565b34801561045b57600080fd5b5061042e61046a3660046136a5565b610c81565b34801561047b57600080fd5b506103fe61048a3660046136c2565b610ccd565b34801561049b57600080fd5b5061044160155481565b3480156104b157600080fd5b506104416104c0366004613703565b610dc7565b3480156104d157600080fd5b50604051600981526020016103d5565b3480156104ed57600080fd5b5061042e6104fc3660046136a5565b610e4b565b34801561050d57600080fd5b506103fe61051c366004613573565b611001565b34801561052d57600080fd5b5061042e61053c36600461371c565b611081565b34801561054d57600080fd5b5061042e61055c3660046136a5565b6110d9565b34801561056d57600080fd5b5061042e61057c366004613703565b611127565b34801561058d57600080fd5b5061044161059c366004613755565b6111ce565b3480156105ad57600080fd5b5061042e6105bc3660046136c2565b611264565b3480156105cd57600080fd5b506009546103fe9060ff1681565b3480156105e757600080fd5b5061042e6105f63660046136a5565b611307565b34801561060757600080fd5b506103fe6106163660046136a5565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064057600080fd5b5061042e61064f36600461377a565b61145a565b34801561066057600080fd5b50601954610674906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b34801561069857600080fd5b5061042e6106a736600461379c565b6114ba565b3480156106b857600080fd5b5061042e6106c73660046137ca565b61150f565b3480156106d857600080fd5b5061042e6106e736600461381f565b6115b3565b3480156106f857600080fd5b506103fe6107073660046136a5565b60066020526000908152604090205460ff1681565b34801561072857600080fd5b5061044160135481565b34801561073e57600080fd5b5061044160145481565b34801561075457600080fd5b5061044160125481565b34801561076a57600080fd5b5061042e6107793660046136a5565b61164c565b34801561078a57600080fd5b506009546103fe90610100900460ff1681565b3480156107a957600080fd5b506104416107b83660046136a5565b611698565b3480156107c957600080fd5b5061042e6116f7565b3480156107de57600080fd5b50601f546020546021546022546023546107f9949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103d5565b34801561082d57600080fd5b50601754610674906001600160a01b031681565b34801561084d57600080fd5b506103fe61085c3660046136a5565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561088657600080fd5b506000546001600160a01b0316610674565b3480156108a457600080fd5b5061042e6108b33660046135ce565b61172d565b3480156108c457600080fd5b50601854610674906001600160a01b031681565b3480156108e457600080fd5b5061042e6108f336600461385a565b6117be565b34801561090457600080fd5b5060408051808201909152600881526743524f4a4545545360c01b60208201526103c8565b34801561093557600080fd5b50602954602a54602b54602c54602d546107f9949392919085565b34801561095c57600080fd5b506103fe61096b366004613573565b611802565b34801561097c57600080fd5b50600e54610674906001600160a01b031681565b34801561099c57600080fd5b506103fe6109ab366004613573565b6118e8565b3480156109bc57600080fd5b5061042e6109cb3660046136a5565b61193d565b3480156109dc57600080fd5b5061042e6109eb36600461379c565b611989565b3480156109fc57600080fd5b5061042e610a0b36600461381f565b6119de565b348015610a1c57600080fd5b5061042e610a2b366004613703565b611a76565b348015610a3c57600080fd5b50610441600c5481565b348015610a5257600080fd5b5061042e610a61366004613703565b611abc565b348015610a7257600080fd5b50610441610a8136600461371c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ab857600080fd5b5061044160115481565b348015610ace57600080fd5b5061042e610add366004613877565b611b02565b348015610aee57600080fd5b5061042e610afd3660046136a5565b611b4e565b348015610b0e57600080fd5b50600b546103fe9060ff1681565b348015610b2857600080fd5b5061042e610b373660046136a5565b611b99565b348015610b4857600080fd5b506024546025546026546027546028546107f9949392919085565b348015610b6f57600080fd5b50600d54610674906001600160a01b031681565b600954600090339060ff1680610bb157506001600160a01b03811660009081526006602052604090205460ff165b610bd65760405162461bcd60e51b8152600401610bcd90613895565b60405180910390fd5b610be1338585611c34565b5060019392505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b8152600401610bcd906138cc565b60005b8251811015610c7c578160076000858481518110610c3857610c38613901565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c748161392d565b915050610c18565b505050565b6000546001600160a01b03163314610cab5760405162461bcd60e51b8152600401610bcd906138cc565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600954600090849060ff1680610cfb57506001600160a01b03811660009081526006602052604090205460ff165b610d175760405162461bcd60e51b8152600401610bcd90613895565b610d22858585611d58565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610da75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610bcd565b610dbb8633610db68785613946565b611c34565b50600195945050505050565b6000601054821115610e2e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610bcd565b6000610e386125e2565b9050610e44818461395d565b9392505050565b6000546001600160a01b03163314610e755760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03811660009081526005602052604090205460ff16610edd5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610bcd565b60005b600854811015610ffd57816001600160a01b031660088281548110610f0757610f07613901565b6000918252602090912001546001600160a01b031603610feb5760088054610f3190600190613946565b81548110610f4157610f41613901565b600091825260209091200154600880546001600160a01b039092169183908110610f6d57610f6d613901565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610fc557610fc561397f565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ff58161392d565b915050610ee0565b5050565b600954600090339060ff168061102f57506001600160a01b03811660009081526006602052604090205460ff165b61104b5760405162461bcd60e51b8152600401610bcd90613895565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610be191908690610db6908790613995565b6000546001600160a01b031633146110ab5760405162461bcd60e51b8152600401610bcd906138cc565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146111035760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111515760405162461bcd60e51b8152600401610bcd906138cc565b804710156111a15760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610bcd565b604051339082156108fc029083906000818181858888f19350505050158015610ffd573d6000803e3d6000fd5b6000600f548311156112225760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610bcd565b81611241576000611237846001600080612605565b51915061125e9050565b6000611251846001600080612605565b60200151915061125e9050565b92915050565b6000546001600160a01b0316331461128e5760405162461bcd60e51b8152600401610bcd906138cc565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906139ad565b50505050565b6000546001600160a01b031633146113315760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03811660009081526005602052604090205460ff161561139a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bcd565b6001600160a01b038116600090815260016020526040902054156113f4576001600160a01b0381166000908152600160205260409020546113da90610dc7565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146114845760405162461bcd60e51b8152600401610bcd906138cc565b6114906009600a613aae565b61149a9083613abd565b6012556114a96009600a613aae565b6114b39082613abd565b6013555050565b6000546001600160a01b031633146114e45760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115395760405162461bcd60e51b8152600401610bcd906138cc565b6009805461ffff191661ff00198915159081169190911761010082021790915560168790556040805160a0810182528781526020810187905290810185905260608101849052608001829052601a869055601b859055601c849055601d839055601e8290556001036115aa57436015555b50505050505050565b6000546001600160a01b031633146115dd5760405162461bcd60e51b8152600401610bcd906138cc565b6040805160a0810182528681526020808201879052818301869052606082018590526080909101839052601f879055859055602184905560228390556023829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b031633146116765760405162461bcd60e51b8152600401610bcd906138cc565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604081205460ff16156116d557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461125e90610dc7565b6000546001600160a01b031633146117215760405162461bcd60e51b8152600401610bcd906138cc565b61172b6000612669565b565b6000546001600160a01b031633146117575760405162461bcd60e51b8152600401610bcd906138cc565b60005b8251811015610c7c57816004600085848151811061177a5761177a613901565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806117b68161392d565b91505061175a565b6000546001600160a01b031633146117e85760405162461bcd60e51b8152600401610bcd906138cc565b600980549115156101000261ff0019909216919091179055565b600954600090339060ff168061183057506001600160a01b03811660009081526006602052604090205460ff165b61184c5760405162461bcd60e51b8152600401610bcd90613895565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156118ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bcd565b6118dd3386610db68785613946565b506001949350505050565b600954600090339060ff168061191657506001600160a01b03811660009081526006602052604090205460ff165b6119325760405162461bcd60e51b8152600401610bcd90613895565b610be1338585611d58565b6000546001600160a01b031633146119675760405162461bcd60e51b8152600401610bcd906138cc565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119b35760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a085760405162461bcd60e51b8152600401610bcd906138cc565b6040805160a081018252868152602081018690528082018590526060810184905260800182905260248690556025859055602684905560278390556028829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b03163314611aa05760405162461bcd60e51b8152600401610bcd906138cc565b611aac6009600a613aae565b611ab69082613abd565b60115550565b6000546001600160a01b03163314611ae65760405162461bcd60e51b8152600401610bcd906138cc565b611af26009600a613aae565b611afc9082613abd565b60145550565b6000546001600160a01b03163314611b2c5760405162461bcd60e51b8152600401610bcd906138cc565b611b37816001613abd565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611b785760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611bc35760405162461bcd60e51b8152600401610bcd906138cc565b6001600160a01b038116611c285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bcd565b611c3181612669565b50565b6001600160a01b038316611c965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bcd565b6001600160a01b038216611cf75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bcd565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611dbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bcd565b6001600160a01b038216611e1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bcd565b60008111611e805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bcd565b611e8983611698565b811115611ef25760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610bcd565b6001600160a01b03831660009081526007602052604090205460ff16158015611f3457506001600160a01b03821660009081526007602052604090205460ff16155b611f705760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610bcd565b6001600160a01b03831660009081526004602052604090205460ff16158015611fb257506001600160a01b03821660009081526004602052604090205460ff16155b15611ffe5760095460ff16611ffe5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610bcd565b6001600160a01b03831660009081526004602052604090205460ff1615801561204057506001600160a01b03821660009081526004602052604090205460ff16155b80156120595750601554612055906003613995565b4311155b156120c857600e546001600160a01b03908116908316036120c85760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610bcd565b600e546001600160a01b0384811691161480156120fe57506001600160a01b03821660009081526004602052604090205460ff16155b8015612113575060095462010000900460ff16155b156121cf5760125481111561216a5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610bcd565b6014548161217784611698565b6121819190613995565b11156121cf5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bcd565b600e546001600160a01b0384811691161480159061220657506001600160a01b03821660009081526004602052604090205460ff16155b801561222b57506001600160a01b03831660009081526004602052604090205460ff16155b8015612240575060095462010000900460ff16155b156123a3576013548111156122975760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610bcd565b600e546001600160a01b0383811691161461231157601454816122b984611698565b6122c39190613995565b11156123115760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bcd565b600b5460ff16156123a3576001600160a01b0383166000908152600a602052604081205461233f9042613946565b9050600c548110156123865760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610bcd565b506001600160a01b0383166000908152600a602052604090204290555b6123af6009600a613aae565b6123ba90600a613abd565b816123c485611698565b6123ce9190613946565b11612415576123dc83611698565b816123e96009600a613aae565b6123f490600a613abd565b6123fe9190613995565b6124089190613946565b6124129082613946565b90505b600060115461242330611698565b600954911115915062010000900460ff161580156124485750600954610100900460ff165b80156124515750805b801561246b5750600e546001600160a01b03858116911614155b801561249057506001600160a01b03841660009081526004602052604090205460ff16155b80156124b557506001600160a01b03831660009081526004602052604090205460ff16155b1561255157600e546001600160a01b0390811690841603612513576011546040805160a08101825260245481526025546020820152602654918101919091526027546060820152602854608082015261250e91906126b9565b612551565b6011546040805160a081018252601f5481526020805490820152602154918101919091526022546060820152602354608082015261255191906126b9565b60095460019060009062010000900460ff168061258657506001600160a01b03861660009081526004602052604090205460ff165b806125a957506001600160a01b03851660009081526004602052604090205460ff165b156125b357600091505b600e546001600160a01b03908116908616036125cd575060015b6125da868686858561285f565b505050505050565b60008060006125ef612bcf565b90925090506125fe818361395d565b9250505090565b61260d613491565b61261985858585612d52565b905061262e8186866126296125e2565b612f54565b6080860152606085015260408401526020830152815261265681856126516125e2565b613025565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055608081015160608201516020830151604084015160009392916126ec91613995565b6126f69190613995565b6127009190613995565b61270b906002613abd565b90506000818360400151856127209190613abd565b61272a919061395d565b905060006127388286613946565b90504761274482613067565b60006127508247613946565b905060008660400151866127649190613946565b61276e908361395d565b905060008760400151826127829190613abd565b905080156127945761279486826131b9565b60208801516000906127a7846002613abd565b6127b19190613abd565b905080156127cf576017546127cf906001600160a01b03168261328e565b60608901516000906127e2856002613abd565b6127ec9190613abd565b9050801561280a5760185461280a906001600160a01b03168261328e565b60808a015160009061281d866002613abd565b6128279190613abd565b9050801561284557601954612845906001600160a01b03168261328e565b50506009805462ff00001916905550505050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156128a157506001600160a01b03851660009081526004602052604090205460ff16155b80156128bc57506016546015546128b89190613995565b4311155b905060006128cc85858585612605565b6001600160a01b03881660009081526005602052604090205490915060ff161561292e576001600160a01b038716600090815260026020526040902054612914908690613946565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff16156129915760e08101516001600160a01b0387166000908152600260205260409020546129779190613995565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546129b69190613946565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546129ed9190613995565b6001600160a01b0387166000908152600160205260409081902091909155810151151580612a2057506000816101000151115b15612a3857612a3881604001518261010001516133a7565b600081608001511180612a5057506000816101400151115b15612ae557612a6881608001518261014001516133dc565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101800151846101600151856101200151866101400151612abf9190613995565b612ac99190613995565b612ad39190613995565b60405190815260200160405180910390a35b600081606001511180612afd57506000816101200151115b15612b1557612b158160600151826101200151613452565b60008160c001511180612b2d57506000816101800151115b15612b4557612b458160c00151826101800151613467565b60008160a001511180612b5d57506000816101600151115b15612b7557612b758160a0015182610160015161347c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151604051612bbe91815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612d2157826001600060088481548110612bfe57612bfe613901565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612c695750816002600060088481548110612c4257612c42613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612c7f57601054600f54945094505050509091565b6001600060088381548110612c9657612c96613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612cc59084613946565b92506002600060088381548110612cde57612cde613901565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612d0d9083613946565b915080612d198161392d565b915050612bdc565b50600f54601054612d32919061395d565b821015612d4957601054600f549350935050509091565b90939092509050565b612d5a613491565b83612d6b5760e08101859052612661565b612d9d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b838015612da8575082155b15612de457506040805160a081018252602454815260255460208201526026549181019190915260275460608201526028546080820152612e53565b82612e2057506040805160a081018252601f54815260208054908201526021549181019190915260225460608201526023546080820152612e53565b506040805160a081018252601a548152601b546020820152601c5491810191909152601d546060820152601e5460808201525b8051606490612e629088613abd565b612e6c919061395d565b6101008301526020810151606490612e849088613abd565b612e8e919061395d565b6101208301526040810151606490612ea69088613abd565b612eb0919061395d565b6101408301526060810151606490612ec89088613abd565b612ed2919061395d565b6101608301526080810151606490612eea9088613abd565b612ef4919061395d565b6101808301819052610160830151610140840151610120850151610100860151612f1e908b613946565b612f289190613946565b612f329190613946565b612f3c9190613946565b612f469190613946565b60e083015250949350505050565b600080808080612f648689613abd565b945086612f7c5750839250600091508190508061301a565b85896101000151612f8d9190613abd565b925085896101200151612fa09190613abd565b915085896101400151612fb39190613abd565b90506000868a6101600151612fc89190613abd565b90506000878b6101800151612fdd9190613abd565b905080828486612fed898c613946565b612ff79190613946565b6130019190613946565b61300b9190613946565b6130159190613946565b955050505b945094509450945094565b600080836130385750600090508061305f565b828561016001516130499190613abd565b91508285610180015161305c9190613abd565b90505b935093915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061309c5761309c613901565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156130f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131199190613adc565b8160018151811061312c5761312c613901565b6001600160a01b039283166020918202929092010152600d546131529130911684611c34565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061318b908590600090869030904290600401613af9565b600060405180830381600087803b1580156131a557600080fd5b505af11580156125da573d6000803e3d6000fd5b600d546131d19030906001600160a01b031684611c34565b600d546001600160a01b031663f305d7198230856000806131fa6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015613262573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132879190613b6a565b5050505050565b804710156132de5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610bcd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461332b576040519150601f19603f3d011682016040523d82523d6000602084013e613330565b606091505b5050905080610c7c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610bcd565b81601060008282546133b99190613946565b9091555050602980548291906000906133d3908490613995565b90915550505050565b80602960020160008282546133f19190613995565b90915550503060009081526005602052604090205460ff161561343357306000908152600260205260408120805483929061342d908490613995565b90915550505b30600090815260016020526040812080548492906133d3908490613995565b80602960010160008282546133f19190613995565b80602960040160008282546133f19190613995565b80602960030160008282546133f19190613995565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156135265785810183015185820160400152820161350a565b81811115613538576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c3157600080fd5b803561356e8161354e565b919050565b6000806040838503121561358657600080fd5b82356135918161354e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611c3157600080fd5b803561356e816135b5565b600080604083850312156135e157600080fd5b823567ffffffffffffffff808211156135f957600080fd5b818501915085601f83011261360d57600080fd5b81356020828211156136215761362161359f565b8160051b604051601f19603f830116810181811086821117156136465761364661359f565b60405292835281830193508481018201928984111561366457600080fd5b948201945b838610156136895761367a86613563565b85529482019493820193613669565b965061369890508782016135c3565b9450505050509250929050565b6000602082840312156136b757600080fd5b8135610e448161354e565b6000806000606084860312156136d757600080fd5b83356136e28161354e565b925060208401356136f28161354e565b929592945050506040919091013590565b60006020828403121561371557600080fd5b5035919050565b6000806040838503121561372f57600080fd5b823561373a8161354e565b9150602083013561374a8161354e565b809150509250929050565b6000806040838503121561376857600080fd5b82359150602083013561374a816135b5565b6000806040838503121561378d57600080fd5b50508035926020909101359150565b600080604083850312156137af57600080fd5b82356137ba8161354e565b9150602083013561374a816135b5565b600080600080600080600060e0888a0312156137e557600080fd5b87356137f0816135b5565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b600080600080600060a0868803121561383757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561386c57600080fd5b8135610e44816135b5565b6000806040838503121561388a57600080fd5b8235613591816135b5565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161393f5761393f613917565b5060010190565b60008282101561395857613958613917565b500390565b60008261397a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b600082198211156139a8576139a8613917565b500190565b6000602082840312156139bf57600080fd5b8151610e44816135b5565b600181815b80851115613a055781600019048211156139eb576139eb613917565b808516156139f857918102915b93841c93908002906139cf565b509250929050565b600082613a1c5750600161125e565b81613a295750600061125e565b8160018114613a3f5760028114613a4957613a65565b600191505061125e565b60ff841115613a5a57613a5a613917565b50506001821b61125e565b5060208310610133831016604e8410600b8410161715613a88575081810a61125e565b613a9283836139ca565b8060001904821115613aa657613aa6613917565b029392505050565b6000610e4460ff841683613a0d565b6000816000190483118215151615613ad757613ad7613917565b500290565b600060208284031215613aee57600080fd5b8151610e448161354e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613b495784516001600160a01b031683529383019391830191600101613b24565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215613b7f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202a748b022263d41b798684546f666b6fd1b4fd0e7e13f8ae12e0ffe1c62ae39464736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x145677fc4d9b8f19b5d56d1820c48e0443049a30
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
Deployed ByteCode Sourcemap
3206:22577:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7096:83;;;;;;;;;;-1:-1:-1;7166:5:0;;;;;;;;;;;;-1:-1:-1;;;7166:5:0;;;;7096:83;;;;;;;:::i;:::-;;;;;;;;7856:181;;;;;;;;;;-1:-1:-1;7856:181:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7856:181:0;1211:187:1;24456:209:0;;;;;;;;;;-1:-1:-1;24456:209:0;;;;;:::i;:::-;;:::i;:::-;;7392:95;;;;;;;;;;-1:-1:-1;7472:7:0;;7392:95;;;3133:25:1;;;3121:2;3106:18;7392:95:0;2987:177:1;23677:102:0;;;;;;;;;;-1:-1:-1;23677:102:0;;;;;:::i;:::-;;:::i;8045:430::-;;;;;;;;;;-1:-1:-1;8045:430:0;;;;;:::i;:::-;;:::i;4675:28::-;;;;;;;;;;;;;;;;10394:248;;;;;;;;;;-1:-1:-1;10394:248:0;;;;;:::i;:::-;;:::i;7278:83::-;;;;;;;;;;-1:-1:-1;7278:83:0;;4264:1;4209:36:1;;4197:2;4182:18;7278:83:0;4067:184:1;11057:475:0;;;;;;;;;;-1:-1:-1;11057:475:0;;;;;:::i;:::-;;:::i;8483:228::-;;;;;;;;;;-1:-1:-1;8483:228:0;;;;;:::i;:::-;;:::i;25144:154::-;;;;;;;;;;-1:-1:-1;25144:154:0;;;;;:::i;:::-;;:::i;11542:111::-;;;;;;;;;;-1:-1:-1;11542:111:0;;;;;:::i;:::-;;:::i;25374:196::-;;;;;;;;;;-1:-1:-1;25374:196:0;;;;;:::i;:::-;;:::i;9444:484::-;;;;;;;;;;-1:-1:-1;9444:484:0;;;;;:::i;:::-;;:::i;25584:154::-;;;;;;;;;;-1:-1:-1;25584:154:0;;;;;:::i;:::-;;:::i;3752:26::-;;;;;;;;;;-1:-1:-1;3752:26:0;;;;;;;;10716:333;;;;;;;;;;-1:-1:-1;10716:333:0;;;;;:::i;:::-;;:::i;11781:123::-;;;;;;;;;;-1:-1:-1;11781:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11869:27:0;11845:4;11869:27;;;:18;:27;;;;;;;;;11781:123;24818:183;;;;;;;;;;-1:-1:-1;24818:183:0;;;;;:::i;:::-;;:::i;4905:70::-;;;;;;;;;;-1:-1:-1;4905:70:0;;;;-1:-1:-1;;;;;4905:70:0;;;;;;-1:-1:-1;;;;;5380:32:1;;;5362:51;;5350:2;5335:18;4905:70:0;5216:203:1;24318:126:0;;;;;;;;;;-1:-1:-1;24318:126:0;;;;;:::i;:::-;;:::i;9936:450::-;;;;;;;;;;-1:-1:-1;9936:450:0;;;;;:::i;:::-;;:::i;11912:217::-;;;;;;;;;;-1:-1:-1;11912:217:0;;;;;:::i;:::-;;:::i;3604:48::-;;;;;;;;;;-1:-1:-1;3604:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4557;;;;;;;;;;;;;;;;4612:50;;;;;;;;;;;;;;;;4503:47;;;;;;;;;;;;;;;;23791:104;;;;;;;;;;-1:-1:-1;23791:104:0;;;;;:::i;:::-;;:::i;3785:23::-;;;;;;;;;;-1:-1:-1;3785:23:0;;;;;;;;;;;7495:198;;;;;;;;;;-1:-1:-1;7495:198:0;;;;;:::i;:::-;;:::i;1635:94::-;;;;;;;;;;;;;:::i;5277:41::-;;;;;;;;;;-1:-1:-1;5277:41:0;;;;;;;;;;;;;;;;;;;;;;7187:25:1;;;7243:2;7228:18;;7221:34;;;;7271:18;;;7264:34;;;;7329:2;7314:18;;7307:34;7372:3;7357:19;;7350:35;7174:3;7159:19;5277:41:0;6928:463:1;4747:75:0;;;;;;;;;;-1:-1:-1;4747:75:0;;;;-1:-1:-1;;;;;4747:75:0;;;9316:120;;;;;;;;;;-1:-1:-1;9316:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9408:20:0;9384:4;9408:20;;;:11;:20;;;;;;;;;9316:120;1412:87;;;;;;;;;;-1:-1:-1;1458:7:0;1485:6;-1:-1:-1;;;;;1485:6:0;1412:87;;23334:209;;;;;;;;;;-1:-1:-1;23334:209:0;;;;;:::i;:::-;;:::i;4829:69::-;;;;;;;;;;-1:-1:-1;4829:69:0;;;;-1:-1:-1;;;;;4829:69:0;;;24205:101;;;;;;;;;;-1:-1:-1;24205:101:0;;;;;:::i;:::-;;:::i;7185:87::-;;;;;;;;;;-1:-1:-1;7257:7:0;;;;;;;;;;;;-1:-1:-1;;;7257:7:0;;;;7185:87;;5547:36;;;;;;;;;;-1:-1:-1;5547:36:0;;;;;;;;;;;;;;;;;;8719:390;;;;;;;;;;-1:-1:-1;8719:390:0;;;;;:::i;:::-;;:::i;4201:19::-;;;;;;;;;;-1:-1:-1;4201:19:0;;;;-1:-1:-1;;;;;4201:19:0;;;9121:187;;;;;;;;;;-1:-1:-1;9121:187:0;;;;;:::i;:::-;;:::i;23551:114::-;;;;;;;;;;-1:-1:-1;23551:114:0;;;;;:::i;:::-;;:::i;24677:129::-;;;;;;;;;;-1:-1:-1;24677:129:0;;;;;:::i;:::-;;:::i;12141:225::-;;;;;;;;;;-1:-1:-1;12141:225:0;;;;;:::i;:::-;;:::i;24067:130::-;;;;;;;;;;-1:-1:-1;24067:130:0;;;;;:::i;:::-;;:::i;3971:39::-;;;;;;;;;;;;;;;;25013:123;;;;;;;;;;-1:-1:-1;25013:123:0;;;;;:::i;:::-;;:::i;7705:143::-;;;;;;;;;;-1:-1:-1;7705:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7813:18:0;;;7786:7;7813:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7705:143;4443:53;;;;;;;;;;;;;;;;23907:152;;;;;;;;;;-1:-1:-1;23907:152:0;;;;;:::i;:::-;;:::i;11661:110::-;;;;;;;;;;-1:-1:-1;11661:110:0;;;;;:::i;:::-;;:::i;3930:34::-;;;;;;;;;;-1:-1:-1;3930:34:0;;;;;;;;1737:192;;;;;;;;;;-1:-1:-1;1737:192:0;;;;;:::i;:::-;;:::i;5325:45::-;;;;;;;;;;-1:-1:-1;5325:45:0;;;;;;;;;;;;;;;;;;4173:21;;;;;;;;;;-1:-1:-1;4173:21:0;;;;-1:-1:-1;;;;;4173:21:0;;;7856:181;4075:14;;7951:4;;7931:10;;4075:14;;;:42;;-1:-1:-1;;;;;;4093:24:0;;;;;;:15;:24;;;;;;;;4075:42;4067:78;;;;-1:-1:-1;;;4067:78:0;;;;;;;:::i;:::-;;;;;;;;;7968:39:::1;913:10:::0;7991:7:::1;8000:6;7968:8;:39::i;:::-;-1:-1:-1::0;8025:4:0::1;::::0;7856:181;-1:-1:-1;;;7856:181:0:o;24456:209::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;24555:9:::1;24551:107;24573:8;:15;24569:1;:19;24551:107;;;24639:5;24609:14;:27;24624:8;24633:1;24624:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24609:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24609:27:0;:35;;-1:-1:-1;;24609:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24590:3;::::1;::::0;::::1;:::i;:::-;;;;24551:107;;;;24456:209:::0;;:::o;23677:102::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;23750:9:::1;:21:::0;;-1:-1:-1;;;;;;23750:21:0::1;-1:-1:-1::0;;;;;23750:21:0;;;::::1;::::0;;;::::1;::::0;;23677:102::o;8045:430::-;4075:14;;8159:4;;8142:6;;4075:14;;;:42;;-1:-1:-1;;;;;;4093:24:0;;;;;;:15;:24;;;;;;;;4075:42;4067:78;;;;-1:-1:-1;;;4067:78:0;;;;;;;:::i;:::-;8176:36:::1;8186:6;8194:9;8205:6;8176:9;:36::i;:::-;-1:-1:-1::0;;;;;8252:19:0;::::1;8225:24;8252:19:::0;;;:11:::1;:19;::::0;;;;;;;913:10;8252:33;;;;;;;;8304:26;;::::1;;8296:79;;;::::0;-1:-1:-1;;;8296:79:0;;9498:2:1;8296:79:0::1;::::0;::::1;9480:21:1::0;9537:2;9517:18;;;9510:30;9576:34;9556:18;;;9549:62;-1:-1:-1;;;9627:18:1;;;9620:38;9675:19;;8296:79:0::1;9296:404:1::0;8296:79:0::1;8386:57;8395:6:::0;913:10;8417:25:::1;8436:6:::0;8417:16;:25:::1;:::i;:::-;8386:8;:57::i;:::-;-1:-1:-1::0;8463:4:0::1;::::0;8045:430;-1:-1:-1;;;;;8045:430:0:o;10394:248::-;10460:7;10499;;10488;:18;;10480:73;;;;-1:-1:-1;;;10480:73:0;;10037:2:1;10480:73:0;;;10019:21:1;10076:2;10056:18;;;10049:30;10115:34;10095:18;;;10088:62;-1:-1:-1;;;10166:18:1;;;10159:40;10216:19;;10480:73:0;9835:406:1;10480:73:0;10564:19;10587:10;:8;:10::i;:::-;10564:33;-1:-1:-1;10615:19:0;10564:33;10615:7;:19;:::i;:::-;10608:26;10394:248;-1:-1:-1;;;10394:248:0:o;11057:475::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11139:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11131:56;;;::::0;-1:-1:-1;;;11131:56:0;;10670:2:1;11131:56:0::1;::::0;::::1;10652:21:1::0;10709:2;10689:18;;;10682:30;10748:25;10728:18;;;10721:53;10791:18;;11131:56:0::1;10468:347:1::0;11131:56:0::1;11203:9;11198:327;11222:9;:16:::0;11218:20;::::1;11198:327;;;11280:7;-1:-1:-1::0;;;;;11264:23:0::1;:9;11274:1;11264:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;11264:12:0::1;:23:::0;11260:254:::1;;11323:9;11333:16:::0;;:20:::1;::::0;11352:1:::1;::::0;11333:20:::1;:::i;:::-;11323:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;11308:9:::1;:12:::0;;-1:-1:-1;;;;;11323:31:0;;::::1;::::0;11318:1;;11308:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;11308:46:0::1;-1:-1:-1::0;;;;;11308:46:0;;::::1;;::::0;;11373:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;11412:11:::1;:20:::0;;;;:28;;-1:-1:-1;;11412:28:0::1;::::0;;11459:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;11459:15:0;;;;;-1:-1:-1;;;;;;11459:15:0::1;::::0;;;;;11198:327:::1;11057:475:::0;:::o;11260:254::-:1;11240:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11198:327;;;;11057:475:::0;:::o;8483:228::-;4075:14;;8584:4;;8563:10;;4075:14;;;:42;;-1:-1:-1;;;;;;4093:24:0;;;;;;:15;:24;;;;;;;;4075:42;4067:78;;;;-1:-1:-1;;;4067:78:0;;;;;;;:::i;:::-;913:10;8633:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8633:34:0;::::1;::::0;;;;;;;;8601:80:::1;::::0;913:10;8624:7;;8633:47:::1;::::0;8670:10;;8633:47:::1;:::i;25144:154::-:0;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;25238:6:::1;:27:::0;;-1:-1:-1;;;;;25238:27:0;;::::1;-1:-1:-1::0;;;;;;25238:27:0;;::::1;;::::0;;;25276:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;25144:154::o;11542:111::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11611:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;11611:34:0::1;11641:4;11611:34;::::0;;11542:111::o;25374:196::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;25474:9:::1;25449:21;:34;;25441:71;;;::::0;-1:-1:-1;;;25441:71:0;;11287:2:1;25441:71:0::1;::::0;::::1;11269:21:1::0;11326:2;11306:18;;;11299:30;11365:26;11345:18;;;11338:54;11409:18;;25441:71:0::1;11085:348:1::0;25441:71:0::1;25523:39;::::0;25531:10:::1;::::0;25523:39;::::1;;;::::0;25552:9;;25523:39:::1;::::0;;;25552:9;25531:10;25523:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;9444:484:::0;9534:7;9573;;9562;:18;;9554:62;;;;-1:-1:-1;;;9554:62:0;;11640:2:1;9554:62:0;;;11622:21:1;11679:2;11659:18;;;11652:30;11718:33;11698:18;;;11691:61;11769:18;;9554:62:0;11438:355:1;9554:62:0;9632:17;9627:294;;9666:28;9697:39;9708:7;9717:4;9723:5;9730;9697:10;:39::i;:::-;9758:9;;-1:-1:-1;9751:16:0;;-1:-1:-1;9751:16:0;9627:294;9800:28;9831:39;9842:7;9851:4;9857:5;9864;9831:10;:39::i;:::-;9892:17;;;;-1:-1:-1;9885:24:0;;-1:-1:-1;9885:24:0;9627:294;9444:484;;;;:::o;25584:154::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;25689:41:::1;::::0;-1:-1:-1;;;25689:41:0;;-1:-1:-1;;;;;11990:32:1;;;25689:41:0::1;::::0;::::1;11972:51:1::0;12039:18;;;12032:34;;;25689:27:0;::::1;::::0;::::1;::::0;11945:18:1;;25689:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25584:154:::0;;;:::o;10716:333::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10799:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10798:21;10790:61;;;::::0;-1:-1:-1;;;10790:61:0;;12529:2:1;10790:61:0::1;::::0;::::1;12511:21:1::0;12568:2;12548:18;;;12541:30;12607:29;12587:18;;;12580:57;12654:18;;10790:61:0::1;12327:351:1::0;10790:61:0::1;-1:-1:-1::0;;;;;10865:16:0;::::1;10884:1;10865:16:::0;;;:7:::1;:16;::::0;;;;;:20;10862:108:::1;;-1:-1:-1::0;;;;;10941:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10921:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10902:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10862:108:::1;-1:-1:-1::0;;;;;10980:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10980:27:0::1;11003:4;10980:27:::0;;::::1;::::0;;;11018:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;11018:23:0::1;::::0;;::::1;::::0;;10716:333::o;24818:183::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;24929:14:::1;4264:1:::0;24929:2:::1;:14;:::i;:::-;24920:23;::::0;:6;:23:::1;:::i;:::-;24906:11;:37:::0;24979:14:::1;4264:1:::0;24979:2:::1;:14;:::i;:::-;24969:24;::::0;:7;:24:::1;:::i;:::-;24954:12;:39:::0;-1:-1:-1;;24818:183:0:o;24318:126::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24405:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;24405:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24318:126::o;9936:450::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;10171:14:::1;:22:::0;;-1:-1:-1;;10204:19:0;-1:-1:-1;;10171:22:0;::::1;;10204:19:::0;;;;;;;10171:22:::1;10204:19:::0;::::1;;::::0;;;10234:8:::1;:20:::0;;;10277:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;10265:9:::1;:55:::0;;;;;;;;;;;;;;;;;;;-1:-1:-1;10335:13:0;10331:47:::1;;10366:12;10350:13;:28:::0;10331:47:::1;9936:450:::0;;;;;;;:::o;11912:217::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;12048:44:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;12040:5:::1;:52:::0;;;;;;;;;;;;;;;;;;12108:13;::::1;::::0;-1:-1:-1;;12108:13:0::1;11912:217:::0;;;;;:::o;23791:104::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;23865:10:::1;:22:::0;;-1:-1:-1;;;;;;23865:22:0::1;-1:-1:-1::0;;;;;23865:22:0;;;::::1;::::0;;;::::1;::::0;;23791:104::o;7495:198::-;-1:-1:-1;;;;;7585:20:0;;7561:7;7585:20;;;:11;:20;;;;;;;;7581:49;;;-1:-1:-1;;;;;;7614:16:0;;;;;:7;:16;;;;;;;7495:198::o;7581:49::-;-1:-1:-1;;;;;7668:16:0;;;;;;:7;:16;;;;;;7648:37;;:19;:37::i;1635:94::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;1700:21:::1;1718:1;1700:9;:21::i;:::-;1635:94::o:0;23334:209::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;23430:9:::1;23426:110;23449:8;:15;23445:1;:19;23426:110;;;23519:5;23485:18;:31;23504:8;23513:1;23504:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23485:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23485:31:0;:39;;-1:-1:-1;;23485:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23466:3;::::1;::::0;::::1;:::i;:::-;;;;23426:110;;24205:101:::0;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;24276:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;24276:22:0;;::::1;::::0;;;::::1;::::0;;24205:101::o;8719:390::-;4075:14;;8825:4;;8804:10;;4075:14;;;:42;;-1:-1:-1;;;;;;4093:24:0;;;;;;:15;:24;;;;;;;;4075:42;4067:78;;;;-1:-1:-1;;;4067:78:0;;;;;;;:::i;:::-;913:10;8842:24:::1;8869:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8869:34:0;::::1;::::0;;;;;;;;8922:35;;::::1;;8914:85;;;::::0;-1:-1:-1;;;8914:85:0;;14441:2:1;8914:85:0::1;::::0;::::1;14423:21:1::0;14480:2;14460:18;;;14453:30;14519:34;14499:18;;;14492:62;-1:-1:-1;;;14570:18:1;;;14563:35;14615:19;;8914:85:0::1;14239:401:1::0;8914:85:0::1;9010:67;913:10:::0;9033:7;9042:34:::1;9061:15:::0;9042:16;:34:::1;:::i;9010:67::-;-1:-1:-1::0;9097:4:0::1;::::0;8719:390;-1:-1:-1;;;;8719:390:0:o;9121:187::-;4075:14;;9219:4;;9198:10;;4075:14;;;:42;;-1:-1:-1;;;;;;4093:24:0;;;;;;:15;:24;;;;;;;;4075:42;4067:78;;;;-1:-1:-1;;;4067:78:0;;;;;;;:::i;:::-;9240:40:::1;9250:10;9262:9;9273:6;9240:9;:40::i;23551:114::-:0;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;23630:15:::1;:27:::0;;-1:-1:-1;;;;;;23630:27:0::1;-1:-1:-1::0;;;;;23630:27:0;;;::::1;::::0;;;::::1;::::0;;23551:114::o;24677:129::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24766:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;24766:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24677:129::o;12141:225::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;12285:44:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;12273:9:::1;:56:::0;;;;;;;;;;;;;;;;;;;12345:13;::::1;::::0;-1:-1:-1;;12345:13:0::1;12141:225:::0;;;;;:::o;24067:130::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;24176:13:::1;4264:1;24176:2;:13;:::i;:::-;24167:22;::::0;:6;:22:::1;:::i;:::-;24146:18;:43:::0;-1:-1:-1;24067:130:0:o;25013:123::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;25114:14:::1;4264:1:::0;25114:2:::1;:14;:::i;:::-;25105:23;::::0;:6;:23:::1;:::i;:::-;25088:14;:40:::0;-1:-1:-1;25013:123:0:o;23907:152::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;24001:16:::1;:4:::0;24008:9:::1;24001:16;:::i;:::-;23986:12;:31:::0;-1:-1:-1;24028:15:0::1;:23:::0;;-1:-1:-1;;24028:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23907:152::o;11661:110::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11728:27:0::1;11758:5;11728:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11728:35:0::1;::::0;;11661:110::o;1737:192::-;1458:7;1485:6;-1:-1:-1;;;;;1485:6:0;913:10;1547:23;1539:68;;;;-1:-1:-1;;;1539:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1826:22:0;::::1;1818:73;;;::::0;-1:-1:-1;;;1818:73:0;;14847:2:1;1818:73:0::1;::::0;::::1;14829:21:1::0;14886:2;14866:18;;;14859:30;14925:34;14905:18;;;14898:62;-1:-1:-1;;;14976:18:1;;;14969:36;15022:19;;1818:73:0::1;14645:402:1::0;1818:73:0::1;1902:19;1912:8;1902:9;:19::i;:::-;1737:192:::0;:::o;16664:335::-;-1:-1:-1;;;;;16757:19:0;;16749:68;;;;-1:-1:-1;;;16749:68:0;;15254:2:1;16749:68:0;;;15236:21:1;15293:2;15273:18;;;15266:30;15332:34;15312:18;;;15305:62;-1:-1:-1;;;15383:18:1;;;15376:34;15427:19;;16749:68:0;15052:400:1;16749:68:0;-1:-1:-1;;;;;16836:21:0;;16828:68;;;;-1:-1:-1;;;16828:68:0;;15659:2:1;16828:68:0;;;15641:21:1;15698:2;15678:18;;;15671:30;15737:34;15717:18;;;15710:62;-1:-1:-1;;;15788:18:1;;;15781:32;15830:19;;16828:68:0;15457:398:1;16828:68:0;-1:-1:-1;;;;;16907:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16959:32;;3133:25:1;;;16959:32:0;;3106:18:1;16959:32:0;;;;;;;16664:335;;;:::o;17007:2449::-;-1:-1:-1;;;;;17095:18:0;;17087:68;;;;-1:-1:-1;;;17087:68:0;;16062:2:1;17087:68:0;;;16044:21:1;16101:2;16081:18;;;16074:30;16140:34;16120:18;;;16113:62;-1:-1:-1;;;16191:18:1;;;16184:35;16236:19;;17087:68:0;15860:401:1;17087:68:0;-1:-1:-1;;;;;17174:16:0;;17166:64;;;;-1:-1:-1;;;17166:64:0;;16468:2:1;17166:64:0;;;16450:21:1;16507:2;16487:18;;;16480:30;16546:34;16526:18;;;16519:62;-1:-1:-1;;;16597:18:1;;;16590:33;16640:19;;17166:64:0;16266:399:1;17166:64:0;17258:1;17249:6;:10;17241:64;;;;-1:-1:-1;;;17241:64:0;;16872:2:1;17241:64:0;;;16854:21:1;16911:2;16891:18;;;16884:30;16950:34;16930:18;;;16923:62;-1:-1:-1;;;17001:18:1;;;16994:39;17050:19;;17241:64:0;16670:405:1;17241:64:0;17334:15;17344:4;17334:9;:15::i;:::-;17324:6;:25;;17316:86;;;;-1:-1:-1;;;17316:86:0;;17282:2:1;17316:86:0;;;17264:21:1;17321:2;17301:18;;;17294:30;17360:34;17340:18;;;17333:62;-1:-1:-1;;;17411:18:1;;;17404:47;17468:19;;17316:86:0;17080:413:1;17316:86:0;-1:-1:-1;;;;;17422:20:0;;;;;;:14;:20;;;;;;;;17421:21;:44;;;;-1:-1:-1;;;;;;17447:18:0;;;;;;:14;:18;;;;;;;;17446:19;17421:44;17413:70;;;;-1:-1:-1;;;17413:70:0;;17700:2:1;17413:70:0;;;17682:21:1;17739:2;17719:18;;;17712:30;-1:-1:-1;;;17758:18:1;;;17751:43;17811:18;;17413:70:0;17498:337:1;17413:70:0;-1:-1:-1;;;;;17508:24:0;;;;;;:18;:24;;;;;;;;17507:25;:52;;;;-1:-1:-1;;;;;;17537:22:0;;;;;;:18;:22;;;;;;;;17536:23;17507:52;17504:128;;;17583:14;;;;17575:45;;;;-1:-1:-1;;;17575:45:0;;18042:2:1;17575:45:0;;;18024:21:1;18081:2;18061:18;;;18054:30;-1:-1:-1;;;18100:18:1;;;18093:48;18158:18;;17575:45:0;17840:342:1;17575:45:0;-1:-1:-1;;;;;17656:24:0;;;;;;:18;:24;;;;;;;;17655:25;:52;;;;-1:-1:-1;;;;;;17685:22:0;;;;;;:18;:22;;;;;;;;17684:23;17655:52;:89;;;;-1:-1:-1;17727:13:0;;:17;;17743:1;17727:17;:::i;:::-;17711:12;:33;;17655:89;17652:180;;;17775:4;;-1:-1:-1;;;;;17775:4:0;;;17769:10;;;;17761:59;;;;-1:-1:-1;;;17761:59:0;;18389:2:1;17761:59:0;;;18371:21:1;18428:2;18408:18;;;18401:30;18467:34;18447:18;;;18440:62;-1:-1:-1;;;18518:18:1;;;18511:34;18562:19;;17761:59:0;18187:400:1;17761:59:0;17863:4;;-1:-1:-1;;;;;17855:12:0;;;17863:4;;17855:12;:39;;;;-1:-1:-1;;;;;;17872:22:0;;;;;;:18;:22;;;;;;;;17871:23;17855:39;:52;;;;-1:-1:-1;17899:8:0;;;;;;;17898:9;17855:52;17852:246;;;17941:11;;17931:6;:21;;17923:63;;;;-1:-1:-1;;;17923:63:0;;18794:2:1;17923:63:0;;;18776:21:1;18833:2;18813:18;;;18806:30;18872:31;18852:18;;;18845:59;18921:18;;17923:63:0;18592:353:1;17923:63:0;18035:14;;18025:6;18009:13;18019:2;18009:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18001:85;;;;-1:-1:-1;;;18001:85:0;;19152:2:1;18001:85:0;;;19134:21:1;;;19171:18;;;19164:30;19230:34;19210:18;;;19203:62;19282:18;;18001:85:0;18950:356:1;18001:85:0;18129:4;;-1:-1:-1;;;;;18121:12:0;;;18129:4;;18121:12;;;;:39;;-1:-1:-1;;;;;;18138:22:0;;;;;;:18;:22;;;;;;;;18137:23;18121:39;:68;;;;-1:-1:-1;;;;;;18165:24:0;;;;;;:18;:24;;;;;;;;18164:25;18121:68;:81;;;;-1:-1:-1;18194:8:0;;;;;;;18193:9;18121:81;18118:573;;;18236:12;;18226:6;:22;;18218:65;;;;-1:-1:-1;;;18218:65:0;;19513:2:1;18218:65:0;;;19495:21:1;19552:2;19532:18;;;19525:30;19591:32;19571:18;;;19564:60;19641:18;;18218:65:0;19311:354:1;18218:65:0;18307:4;;-1:-1:-1;;;;;18301:10:0;;;18307:4;;18301:10;18298:134;;18365:14;;18355:6;18339:13;18349:2;18339:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18331:85;;;;-1:-1:-1;;;18331:85:0;;19152:2:1;18331:85:0;;;19134:21:1;;;19171:18;;;19164:30;19230:34;19210:18;;;19203:62;19282:18;;18331:85:0;18950:356:1;18331:85:0;18449:15;;;;18446:234;;;-1:-1:-1;;;;;18523:15:0;;18484:18;18523:15;;;:9;:15;;;;;;18505:33;;:15;:33;:::i;:::-;18484:54;;18579:12;;18565:10;:26;;18557:55;;;;-1:-1:-1;;;18557:55:0;;19872:2:1;18557:55:0;;;19854:21:1;19911:2;19891:18;;;19884:30;-1:-1:-1;;;19930:18:1;;;19923:46;19986:18;;18557:55:0;19670:340:1;18557:55:0;-1:-1:-1;;;;;;18631:15:0;;;;;;:9;:15;;;;;18649;18631:33;;18446:234;18758:14;4264:1;18758:2;:14;:::i;:::-;18752:20;;:2;:20;:::i;:::-;18742:6;18724:15;18734:4;18724:9;:15::i;:::-;:24;;;;:::i;:::-;:48;18721:111;;18816:15;18826:4;18816:9;:15::i;:::-;18807:6;18790:14;4264:1;18790:2;:14;:::i;:::-;18785:19;;:2;:19;:::i;:::-;:28;;;;:::i;:::-;:46;;;;:::i;:::-;18774:58;;;;:::i;:::-;;;18721:111;18862:12;18905:18;;18877:24;18895:4;18877:9;:24::i;:::-;18938:8;;-1:-1:-1;;18877:46:0;;-1:-1:-1;18938:8:0;;;;;18937:9;:24;;;;-1:-1:-1;18950:11:0;;;;;;;18937:24;:35;;;;;18965:7;18937:35;:51;;;;-1:-1:-1;18984:4:0;;-1:-1:-1;;;;;18976:12:0;;;18984:4;;18976:12;;18937:51;:80;;;;-1:-1:-1;;;;;;18993:24:0;;;;;;:18;:24;;;;;;;;18992:25;18937:80;:107;;;;-1:-1:-1;;;;;;19022:22:0;;;;;;:18;:22;;;;;;;;19021:23;18937:107;18934:261;;;19069:4;;-1:-1:-1;;;;;19069:4:0;;;19063:10;;;;19060:123;;19091:18;;19076:45;;;;;;;;19111:9;19076:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19091:18;19076:14;:45::i;:::-;19060:123;;;19157:18;;19142:41;;;;;;;;19177:5;19142:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19157:18;19142:14;:41::i;:::-;19268:8;;19220:4;;19205:12;;19268:8;;;;;;:36;;-1:-1:-1;;;;;;19280:24:0;;;;;;:18;:24;;;;;;;;19268:36;:62;;;-1:-1:-1;;;;;;19308:22:0;;;;;;:18;:22;;;;;;;;19268:62;19265:82;;;19342:5;19332:15;;19265:82;19367:4;;-1:-1:-1;;;;;19367:4:0;;;19361:10;;;;19358:28;;-1:-1:-1;19382:4:0;19358:28;19399:49;19414:4;19420:2;19424:6;19432:7;19441:6;19399:14;:49::i;:::-;17076:2380;;;17007:2449;;;:::o;15950:158::-;15991:7;16012:15;16029;16048:19;:17;:19::i;:::-;16011:56;;-1:-1:-1;16011:56:0;-1:-1:-1;16085:15:0;16011:56;;16085:15;:::i;:::-;16078:22;;;;15950:158;:::o;13620:516::-;13725:36;;:::i;:::-;13786:51;13798:7;13807;13816:6;13824:12;13786:11;:51::i;:::-;13774:63;;13957:53;13970:9;13981:7;13990;13999:10;:8;:10::i;:::-;13957:12;:53::i;:::-;13933:20;;;13848:162;13911:20;;;13848:162;13895:14;;;13848:162;13868:25;;;13848:162;;;14057:44;13849:9;14081:7;14090:10;:8;:10::i;:::-;14057:12;:44::i;:::-;14038:15;;;14021:80;14022:14;;;14021:80;13620:516;;;;;;;:::o;1937:173::-;1993:16;2012:6;;-1:-1:-1;;;;;2029:17:0;;;-1:-1:-1;;;;;;2029:17:0;;;;;;2062:40;;2012:6;;;;;;;2062:40;;1993:16;2062:40;1982:128;1937:173;:::o;20912:1331::-;6082:8;:15;;-1:-1:-1;;6082:15:0;;;;;21078:9:::1;::::0;::::1;::::0;21067:8:::1;::::0;::::1;::::0;21050:14:::1;::::0;::::1;::::0;21033::::1;::::0;::::1;::::0;6082:15;;21078:9;21067:8;21033:31:::1;::::0;::::1;:::i;:::-;:42;;;;:::i;:::-;:54;;;;:::i;:::-;21032:60;::::0;21091:1:::1;21032:60;:::i;:::-;21010:82;;21103:32;21173:11;21156:4;:14;;;21138:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;21103:81:::0;-1:-1:-1;21195:14:0::1;21212:42;21103:81:::0;21212:15;:42:::1;:::i;:::-;21195:59:::0;-1:-1:-1;21292:21:0::1;21326:24;21195:59:::0;21326:16:::1;:24::i;:::-;21363:20;21386:38;21410:14:::0;21386:21:::1;:38;:::i;:::-;21363:61;;21435:19;21486:4;:14;;;21472:11;:28;;;;:::i;:::-;21456:45;::::0;:12;:45:::1;:::i;:::-;21435:66;;21512:29;21558:4;:14;;;21544:11;:28;;;;:::i;:::-;21512:60:::0;-1:-1:-1;21588:25:0;;21585:158:::1;;21670:61;21683:24;21709:21;21670:12;:61::i;:::-;21796:14;::::0;::::1;::::0;21755:20:::1;::::0;21778:15:::1;:11:::0;21792:1:::1;21778:15;:::i;:::-;:32;;;;:::i;:::-;21755:55:::0;-1:-1:-1;21824:16:0;;21821:95:::1;;21864:15;::::0;21856:48:::1;::::0;-1:-1:-1;;;;;21864:15:0::1;21891:12:::0;21856:34:::1;:48::i;:::-;21961:8;::::0;::::1;::::0;21926:14:::1;::::0;21943:15:::1;:11:::0;21957:1:::1;21943:15;:::i;:::-;:26;;;;:::i;:::-;21926:43:::0;-1:-1:-1;21983:10:0;;21980:77:::1;;22017:9;::::0;22009:36:::1;::::0;-1:-1:-1;;;;;22017:9:0::1;22038:6:::0;22009:28:::1;:36::i;:::-;22116:9;::::0;::::1;::::0;22077:18:::1;::::0;22098:15:::1;:11:::0;22112:1:::1;22098:15;:::i;:::-;:27;;;;:::i;:::-;22077:48:::0;-1:-1:-1;22139:14:0;;22136:86:::1;;22177:10;::::0;22169:41:::1;::::0;-1:-1:-1;;;;;22177:10:0::1;22199::::0;22169:29:::1;:41::i;:::-;-1:-1:-1::0;;6120:8:0;:16;;-1:-1:-1;;6120:16:0;;;-1:-1:-1;;;;;;;;;;20912:1331:0:o;19539:1365::-;-1:-1:-1;;;;;19686:26:0;;19665:17;19686:26;;;:18;:26;;;;;;;;19685:27;:74;;;;-1:-1:-1;;;;;;19730:29:0;;;;;;:18;:29;;;;;;;;19729:30;19685:74;:131;;;;;19808:8;;19792:13;;:24;;;;:::i;:::-;19776:12;:40;;19685:131;19665:151;;19829:28;19860:50;19871:7;19880;19889:6;19897:12;19860:10;:50::i;:::-;-1:-1:-1;;;;;19929:19:0;;;;;;:11;:19;;;;;;19829:81;;-1:-1:-1;19929:19:0;;19925:115;;;-1:-1:-1;;;;;20005:15:0;;;;;;:7;:15;;;;;;:23;;20021:7;;20005:23;:::i;:::-;-1:-1:-1;;;;;19987:15:0;;;;;;:7;:15;;;;;:41;19925:115;-1:-1:-1;;;;;20054:22:0;;;;;;:11;:22;;;;;;;;20050:130;;;20151:17;;;;-1:-1:-1;;;;;20132:18:0;;;;;;:7;:18;;;;;;:36;;20151:17;20132:36;:::i;:::-;-1:-1:-1;;;;;20111:18:0;;;;;;:7;:18;;;;;:57;20050:130;20226:9;;-1:-1:-1;;;;;20210:15:0;;20226:9;20210:15;;;:7;:15;;;;;;:25;;20226:9;20210:25;:::i;:::-;-1:-1:-1;;;;;20192:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;20286:17;;;20267:18;;;;;;;;;;:36;;20286:17;20267:36;:::i;:::-;-1:-1:-1;;;;;20246:18:0;;;;;;:7;:18;;;;;;;:57;;;;20327:6;;;:10;;;:24;;;20350:1;20341;:6;;;:10;20327:24;20324:56;;;20353:27;20365:1;:6;;;20373:1;:6;;;20353:11;:27::i;:::-;20409:1;20394;:12;;;:16;:36;;;;20429:1;20414;:12;;;:16;20394:36;20391:207;;;20447:41;20462:1;:12;;;20475:1;:12;;;20447:14;:41::i;:::-;20533:4;-1:-1:-1;;;;;20508:78:0;20517:6;-1:-1:-1;;;;;20508:78:0;;20578:1;:7;;;20570:1;:6;;;20555:1;:12;;;20540:1;:12;;;:27;;;;:::i;:::-;:36;;;;:::i;:::-;:45;;;;:::i;:::-;20508:78;;3133:25:1;;;3121:2;3106:18;20508:78:0;;;;;;;20391:207;20626:1;20611;:12;;;:16;:36;;;;20646:1;20631;:12;;;:16;20611:36;20608:83;;;20649:42;20664:1;:12;;;20678:1;:12;;;20649:14;:42::i;:::-;20715:1;20705;:7;;;:11;:26;;;;20730:1;20720;:7;;;:11;20705:26;20702:58;;;20733:27;20743:1;:7;;;20752:1;:7;;;20733:9;:27::i;:::-;20783:1;20774;:6;;;:10;:24;;;;20797:1;20788;:6;;;:10;20774:24;20771:53;;;20800:24;20809:1;:6;;;20817:1;:6;;;20800:8;:24::i;:::-;20857:9;-1:-1:-1;;;;;20840:46:0;20849:6;-1:-1:-1;;;;;20840:46:0;;20868:1;:17;;;20840:46;;;;3133:25:1;;3121:2;3106:18;;2987:177;20840:46:0;;;;;;;;19650:1254;;19539:1365;;;;;:::o;16116:540::-;16213:7;;16249;;16166;;;;;16267:279;16291:9;:16;16287:20;;16267:279;;;16357:7;16333;:21;16341:9;16351:1;16341:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16341:12:0;16333:21;;;;;;;;;;;;;:31;;:66;;;16392:7;16368;:21;16376:9;16386:1;16376:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16376:12:0;16368:21;;;;;;;;;;;;;:31;16333:66;16329:97;;;16409:7;;16418;;16401:25;;;;;;;16116:540;;:::o;16329:97::-;16459:7;:21;16467:9;16477:1;16467:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16467:12:0;16459:21;;;;;;;;;;;;;16451:29;;:7;:29;:::i;:::-;16441:39;;16513:7;:21;16521:9;16531:1;16521:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16521:12:0;16513:21;;;;;;;;;;;;;16505:29;;:7;:29;:::i;:::-;16495:39;-1:-1:-1;16309:3:0;;;;:::i;:::-;;;;16267:279;;;;16578:7;;16570;;:15;;;;:::i;:::-;16560:7;:25;16556:56;;;16595:7;;16604;;16587:25;;;;;;16116:540;;:::o;16556:56::-;16631:7;;16640;;-1:-1:-1;16116:540:0;-1:-1:-1;16116:540:0:o;14144:746::-;14250:28;;:::i;:::-;14297:7;14293:86;;14319:17;;;:27;;;14359:8;;14293:86;14389:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14389:17:0;14421:6;:23;;;;;14432:12;14431:13;14421:23;14417:124;;;-1:-1:-1;14446:16:0;;;;;;;;14453:9;14446:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:124;;;14483:12;14478:63;;-1:-1:-1;14497:12:0;;;;;;;;14504:5;14497:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14478:63;;;-1:-1:-1;14525:16:0;;;;;;;;14532:9;14525:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14478:63;14579:8;;14588:3;;14571:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;14562:6;;;:29;14625:14;;;;14640:3;;14617:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;14602:12;;;:41;14677:14;;;;14692:3;;14669:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;14654:12;;;:41;14723:8;;;;14732:3;;14715:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;14706:6;;;:29;14764:9;;;;14774:3;;14756:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;14746:7;;;:31;;;14849:6;;;;14836:12;;;;14823;;;;14816:6;;;;14808:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:47;;;;:::i;:::-;:55;;;;:::i;:::-;14788:17;;;:75;-1:-1:-1;14144:746:0;;;;;;:::o;14898:720::-;15024:15;;;;;15139:19;15147:11;15139:7;:19;:::i;:::-;15129:29;;15175:7;15171:69;;-1:-1:-1;15204:7:0;;-1:-1:-1;15222:1:0;;-1:-1:-1;15222:1:0;;-1:-1:-1;15222:1:0;15197:31;;15171:69;15266:11;15259:1;:6;;;:18;;;;:::i;:::-;15252:25;;15314:11;15301:1;:12;;;:24;;;;:::i;:::-;15288:37;;15362:11;15349:1;:12;;;:24;;;;:::i;:::-;15336:37;;15384:12;15406:11;15399:1;:6;;;:18;;;;:::i;:::-;15384:33;;15428:13;15452:11;15444:1;:7;;;:19;;;;:::i;:::-;15428:35;-1:-1:-1;15428:35:0;15528:4;15517:10;15506;15493:12;15501:4;15493:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;15474:64;;15549:61;;14898:720;;;;;;;;;;:::o;15630:312::-;15739:12;15752:13;15784:7;15780:49;;-1:-1:-1;15813:1:0;;-1:-1:-1;15813:1:0;15806:11;;15780:49;15855:11;15848:1;:6;;;:18;;;;:::i;:::-;15841:25;;15893:11;15885:1;:7;;;:19;;;;:::i;:::-;15877:27;;15630:312;;;;;;;:::o;22754:562::-;22904:16;;;22918:1;22904:16;;;;;;;;22880:21;;22904:16;;;;;;;;;;-1:-1:-1;22904:16:0;22880:40;;22949:4;22931;22936:1;22931:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22931:23:0;;;:7;;;;;;;;;;:23;;;;22975:6;;:13;;;-1:-1:-1;;;22975:13:0;;;;:6;;;;;:11;;:13;;;;;22931:7;;22975:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22965:4;22970:1;22965:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22965:23:0;;;:7;;;;;;;;;:23;23033:6;;23001:53;;23018:4;;23033:6;23042:11;23001:8;:53::i;:::-;23093:6;;:215;;-1:-1:-1;;;23093:215:0;;-1:-1:-1;;;;;23093:6:0;;;;:57;;:215;;23165:11;;23093:6;;23235:4;;23262;;23282:15;;23093:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22251:495;22431:6;;22399:53;;22416:4;;-1:-1:-1;;;;;22431:6:0;22440:11;22399:8;:53::i;:::-;22495:6;;-1:-1:-1;;;;;22495:6:0;:22;22525:9;22558:4;22578:11;22495:6;;22690:7;1458;1485:6;-1:-1:-1;;;;;1485:6:0;;1412:87;22690:7;22495:243;;;;;;-1:-1:-1;;;;;;22495:243:0;;;-1:-1:-1;;;;;21615:15:1;;;22495:243:0;;;21597:34:1;21647:18;;;21640:34;;;;21690:18;;;21683:34;;;;21733:18;;;21726:34;21797:15;;;21776:19;;;21769:44;22712:15:0;21829:19:1;;;21822:35;21531:19;;22495:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22251:495;;:::o;2880:317::-;2995:6;2970:21;:31;;2962:73;;;;-1:-1:-1;;;2962:73:0;;22381:2:1;2962:73:0;;;22363:21:1;22420:2;22400:18;;;22393:30;22459:31;22439:18;;;22432:59;22508:18;;2962:73:0;22179:353:1;2962:73:0;3049:12;3067:9;-1:-1:-1;;;;;3067:14:0;3089:6;3067:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:52;;;3119:7;3111:78;;;;-1:-1:-1;;;3111:78:0;;22949:2:1;3111:78:0;;;22931:21:1;22988:2;22968:18;;;22961:30;23027:34;23007:18;;;23000:62;23098:28;23078:18;;;23071:56;23144:19;;3111:78:0;22747:422:1;12374:123:0;12452:4;12442:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;12467:11:0;:22;;12485:4;;12467:11;:15;;:22;;12485:4;;12467:22;:::i;:::-;;;;-1:-1:-1;;;;12374:123:0:o;12505:284::-;12612:10;12588:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;12658:4:0;12638:26;;;;:11;:26;;;;;;;;12635:101;;;12706:4;12690:22;;;;:7;:22;;;;;:34;;12714:10;;12690:22;:34;;12714:10;;12690:34;:::i;:::-;;;;-1:-1:-1;;12635:101:0;12762:4;12746:22;;;;:7;:22;;;;;:35;;12771:10;;12746:22;:35;;12771:10;;12746:35;:::i;12797:284::-;12904:10;12880:11;:21;;;:34;;;;;;;:::i;13353:249::-;13440:5;13421:11;:16;;;:24;;;;;;;:::i;13093:242::-;13176:4;13158:11;:15;;;:22;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;3169:247::-;3228:6;3281:2;3269:9;3260:7;3256:23;3252:32;3249:52;;;3297:1;3294;3287:12;3249:52;3336:9;3323:23;3355:31;3380:5;3355:31;:::i;3421:456::-;3498:6;3506;3514;3567:2;3555:9;3546:7;3542:23;3538:32;3535:52;;;3583:1;3580;3573:12;3535:52;3622:9;3609:23;3641:31;3666:5;3641:31;:::i;:::-;3691:5;-1:-1:-1;3748:2:1;3733:18;;3720:32;3761:33;3720:32;3761:33;:::i;:::-;3421:456;;3813:7;;-1:-1:-1;;;3867:2:1;3852:18;;;;3839:32;;3421:456::o;3882:180::-;3941:6;3994:2;3982:9;3973:7;3969:23;3965:32;3962:52;;;4010:1;4007;4000:12;3962:52;-1:-1:-1;4033:23:1;;3882:180;-1:-1:-1;3882:180:1:o;4256:388::-;4324:6;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4440:9;4427:23;4459:31;4484:5;4459:31;:::i;:::-;4509:5;-1:-1:-1;4566:2:1;4551:18;;4538:32;4579:33;4538:32;4579:33;:::i;:::-;4631:7;4621:17;;;4256:388;;;;;:::o;4649:309::-;4714:6;4722;4775:2;4763:9;4754:7;4750:23;4746:32;4743:52;;;4791:1;4788;4781:12;4743:52;4827:9;4814:23;4804:33;;4887:2;4876:9;4872:18;4859:32;4900:28;4922:5;4900:28;:::i;4963:248::-;5031:6;5039;5092:2;5080:9;5071:7;5067:23;5063:32;5060:52;;;5108:1;5105;5098:12;5060:52;-1:-1:-1;;5131:23:1;;;5201:2;5186:18;;;5173:32;;-1:-1:-1;4963:248:1:o;5424:382::-;5489:6;5497;5550:2;5538:9;5529:7;5525:23;5521:32;5518:52;;;5566:1;5563;5556:12;5518:52;5605:9;5592:23;5624:31;5649:5;5624:31;:::i;:::-;5674:5;-1:-1:-1;5731:2:1;5716:18;;5703:32;5744:30;5703:32;5744:30;:::i;5811:653::-;5921:6;5929;5937;5945;5953;5961;5969;6022:3;6010:9;6001:7;5997:23;5993:33;5990:53;;;6039:1;6036;6029:12;5990:53;6078:9;6065:23;6097:28;6119:5;6097:28;:::i;:::-;6144:5;6196:2;6181:18;;6168:32;;-1:-1:-1;6247:2:1;6232:18;;6219:32;;6298:2;6283:18;;6270:32;;-1:-1:-1;6349:3:1;6334:19;;6321:33;;-1:-1:-1;6401:3:1;6386:19;;6373:33;;-1:-1:-1;6453:3:1;6438:19;6425:33;;-1:-1:-1;5811:653:1;-1:-1:-1;;;5811:653:1:o;6469:454::-;6564:6;6572;6580;6588;6596;6649:3;6637:9;6628:7;6624:23;6620:33;6617:53;;;6666:1;6663;6656:12;6617:53;-1:-1:-1;;6689:23:1;;;6759:2;6744:18;;6731:32;;-1:-1:-1;6810:2:1;6795:18;;6782:32;;6861:2;6846:18;;6833:32;;-1:-1:-1;6912:3:1;6897:19;6884:33;;-1:-1:-1;6469:454:1;-1:-1:-1;6469:454:1:o;7396:241::-;7452:6;7505:2;7493:9;7484:7;7480:23;7476:32;7473:52;;;7521:1;7518;7511:12;7473:52;7560:9;7547:23;7579:28;7601:5;7579:28;:::i;7642:309::-;7707:6;7715;7768:2;7756:9;7747:7;7743:23;7739:32;7736:52;;;7784:1;7781;7774:12;7736:52;7823:9;7810:23;7842:28;7864:5;7842:28;:::i;8179:347::-;8381:2;8363:21;;;8420:2;8400:18;;;8393:30;8459:25;8454:2;8439:18;;8432:53;8517:2;8502:18;;8179:347::o;8531:356::-;8733:2;8715:21;;;8752:18;;;8745:30;8811:34;8806:2;8791:18;;8784:62;8878:2;8863:18;;8531:356::o;8892:127::-;8953:10;8948:3;8944:20;8941:1;8934:31;8984:4;8981:1;8974:15;9008:4;9005:1;8998:15;9024:127;9085:10;9080:3;9076:20;9073:1;9066:31;9116:4;9113:1;9106:15;9140:4;9137:1;9130:15;9156:135;9195:3;9216:17;;;9213:43;;9236:18;;:::i;:::-;-1:-1:-1;9283:1:1;9272:13;;9156:135::o;9705:125::-;9745:4;9773:1;9770;9767:8;9764:34;;;9778:18;;:::i;:::-;-1:-1:-1;9815:9:1;;9705:125::o;10246:217::-;10286:1;10312;10302:132;;10356:10;10351:3;10347:20;10344:1;10337:31;10391:4;10388:1;10381:15;10419:4;10416:1;10409:15;10302:132;-1:-1:-1;10448:9:1;;10246:217::o;10820:127::-;10881:10;10876:3;10872:20;10869:1;10862:31;10912:4;10909:1;10902:15;10936:4;10933:1;10926:15;10952:128;10992:3;11023:1;11019:6;11016:1;11013:13;11010:39;;;11029:18;;:::i;:::-;-1:-1:-1;11065:9:1;;10952:128::o;12077:245::-;12144:6;12197:2;12185:9;12176:7;12172:23;12168:32;12165:52;;;12213:1;12210;12203:12;12165:52;12245:9;12239:16;12264:28;12286:5;12264:28;:::i;12683:422::-;12772:1;12815:5;12772:1;12829:270;12850:7;12840:8;12837:21;12829:270;;;12909:4;12905:1;12901:6;12897:17;12891:4;12888:27;12885:53;;;12918:18;;:::i;:::-;12968:7;12958:8;12954:22;12951:55;;;12988:16;;;;12951:55;13067:22;;;;13027:15;;;;12829:270;;;12833:3;12683:422;;;;;:::o;13110:806::-;13159:5;13189:8;13179:80;;-1:-1:-1;13230:1:1;13244:5;;13179:80;13278:4;13268:76;;-1:-1:-1;13315:1:1;13329:5;;13268:76;13360:4;13378:1;13373:59;;;;13446:1;13441:130;;;;13353:218;;13373:59;13403:1;13394:10;;13417:5;;;13441:130;13478:3;13468:8;13465:17;13462:43;;;13485:18;;:::i;:::-;-1:-1:-1;;13541:1:1;13527:16;;13556:5;;13353:218;;13655:2;13645:8;13642:16;13636:3;13630:4;13627:13;13623:36;13617:2;13607:8;13604:16;13599:2;13593:4;13590:12;13586:35;13583:77;13580:159;;;-1:-1:-1;13692:19:1;;;13724:5;;13580:159;13771:34;13796:8;13790:4;13771:34;:::i;:::-;13841:6;13837:1;13833:6;13829:19;13820:7;13817:32;13814:58;;;13852:18;;:::i;:::-;13890:20;;13110:806;-1:-1:-1;;;13110:806:1:o;13921:140::-;13979:5;14008:47;14049:4;14039:8;14035:19;14029:4;14008:47;:::i;14066:168::-;14106:7;14172:1;14168;14164:6;14160:14;14157:1;14154:21;14149:1;14142:9;14135:17;14131:45;14128:71;;;14179:18;;:::i;:::-;-1:-1:-1;14219:9:1;;14066:168::o;20015:251::-;20085:6;20138:2;20126:9;20117:7;20113:23;20109:32;20106:52;;;20154:1;20151;20144:12;20106:52;20186:9;20180:16;20205:31;20230:5;20205:31;:::i;20271:980::-;20533:4;20581:3;20570:9;20566:19;20612:6;20601:9;20594:25;20638:2;20676:6;20671:2;20660:9;20656:18;20649:34;20719:3;20714:2;20703:9;20699:18;20692:31;20743:6;20778;20772:13;20809:6;20801;20794:22;20847:3;20836:9;20832:19;20825:26;;20886:2;20878:6;20874:15;20860:29;;20907:1;20917:195;20931:6;20928:1;20925:13;20917:195;;;20996:13;;-1:-1:-1;;;;;20992:39:1;20980:52;;21087:15;;;;21052:12;;;;21028:1;20946:9;20917:195;;;-1:-1:-1;;;;;;;21168:32:1;;;;21163:2;21148:18;;21141:60;-1:-1:-1;;;21232:3:1;21217:19;21210:35;21129:3;20271:980;-1:-1:-1;;;20271:980:1:o;21868:306::-;21956:6;21964;21972;22025:2;22013:9;22004:7;22000:23;21996:32;21993:52;;;22041:1;22038;22031:12;21993:52;22070:9;22064:16;22054:26;;22120:2;22109:9;22105:18;22099:25;22089:35;;22164:2;22153:9;22149:18;22143:25;22133:35;;21868:306;;;;;:::o
Swarm Source
ipfs://2a748b022263d41b798684546f666b6fd1b4fd0e7e13f8ae12e0ffe1c62ae394