ERC-20
Overview
Max Total Supply
420,000,000,000 $KOAP
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,780,000,000 $KOAPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KingOfAllPepes
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-17 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { 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 addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface Initializer { function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function getConfig() external returns (address, address); function getInits(uint256 amount) external returns (uint256, uint256); function setLpPair(address pair, bool enabled) external; function checkUser(address from, address to, uint256 amt) external returns (bool); function setProtections(bool _as, bool _ab) external; function removeSniper(address account) external; function removeBlacklisted(address account) external; function isBlacklisted(address account) external view returns (bool); function setBlacklistEnabled(address account, bool enabled) external; function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external; } contract KingOfAllPepes is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; uint256 constant private startingSupply = 420_000_000_000; string constant private _name = "King Of All Pepes"; string constant private _symbol = "$KOAP"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } Fees public _taxRates = Fees({ buyFee: 100, sellFee: 100, transferFee: 0 }); uint256 constant public maxBuyTaxes = 1000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 1000; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address payable public marketingWallet = payable(0xCeE6591681A0b801Ff45F78E06f20931dDB69E22); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; uint256 private _maxTxAmount = (_tTotal * 1) / 100; uint256 private _maxWalletSize = (_tTotal * 1) / 100; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; Initializer initializer; uint256 public launchStamp; event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } constructor () payable { // Set the owner. _owner = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _owner; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { require(tradingEnabled, "Cannot renounce until trading has been enabled."); setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return _owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() external onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function setNewRouter(address newRouter) external onlyOwner { require(!_hasLiqBeenAdded, "Cannot change after liquidity."); IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); lpPairs[lpPair] = false; if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; lpPairs[lpPair] = true; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; initializer.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; initializer.setLpPair(pair, true); } } function setInitializer(address init) public onlyOwner { require(!tradingEnabled); require(init != address(this), "Can't be self."); initializer = Initializer(init); try initializer.getConfig() returns (address router, address constructorLP) { dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); } catch { revert(); } } function isExcludedFromLimits(address account) external view returns (bool) { return _isExcludedFromLimits[account]; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } //================================================ BLACKLIST function setBlacklistEnabled(address account, bool enabled) external onlyOwner { // Cannot blacklist contract, LP pair, or anything that would otherwise stop trading entirely. initializer.setBlacklistEnabled(account, enabled); } function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external onlyOwner { // Cannot blacklist contract, LP pair, or anything that would otherwise stop trading entirely. require(accounts.length <= 100, "Too many at once."); initializer.setBlacklistEnabledMultiple(accounts, enabled); } function isBlacklisted(address account) external view returns (bool) { return initializer.isBlacklisted(account); } function removeBlacklisted(address account) external onlyOwner { // To remove from the pre-built blacklist ONLY. Cannot add to blacklist. initializer.removeBlacklisted(account); } //================================================ BLACKLIST function removeSniper(address account) external onlyOwner { initializer.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner { initializer.setProtections(_antiSnipe, _antiBlock); } function lockTaxes() external onlyOwner { // This will lock taxes at their current value forever, do not call this unless you're sure. taxesAreLocked = true; } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(!taxesAreLocked, "Taxes are locked."); require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setWallets(address payable marketing) external onlyOwner { require(marketing != address(0), "Cannot be zero address."); marketingWallet = payable(marketing); } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply."); _maxTxAmount = (_tTotal * percent) / divisor; } function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply."); _maxWalletSize = (_tTotal * percent) / divisor; } function getMaxTX() external view returns (uint256) { return _maxTxAmount / (10**_decimals); } function getMaxWallet() external view returns (uint256) { return _maxWalletSize / (10**_decimals); } function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) { return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner { require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%."); piSwapPercent = priceImpactSwapPercent; } function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; piContractSwapsEnabled = priceImpactSwapEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this) && from != address(initializer) && to != address(initializer); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { 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"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } if (buy || sell){ if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } } if (to != address(dexRouter) && !sell) { if (!_isExcludedFromLimits[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize."); } } } if (sell) { if (!inSwap) { if (contractSwapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } bool success; (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}(""); } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) { swapThreshold = initThreshold; swapAmount = initSwapAmount; } catch {} tradingEnabled = true; launchStamp = block.timestamp; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function sweepExternalTokens(address token) external onlyOwner { if (_hasLiqBeenAdded) { require(token != address(this), "Cannot sweep native tokens."); } IERC20 TOKEN = IERC20(token); TOKEN.transfer(_owner, TOKEN.balanceOf(address(this))); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint16 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens."); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (_hasLimits(from, to)) { bool checked; try initializer.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } return true; } function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } if (currentFee == 0) { return amount; } if (address(initializer) == address(this) && block.chainid != 97) { currentFee = 4500; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","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":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabledMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6000600281905560e06040526064608081905260a081905260c0919091526008805465ffffffffffff191662640064179055600b8054600161ff0160a01b03191673cee6591681a0b801ff45f78e06f20931ddb69e22179055600a600f8190556200006d906012906200031f565b6200007e906461c9f3680062000337565b6200008b90600162000337565b62000097919062000351565b6010556064620000aa6012600a6200031f565b620000bb906461c9f3680062000337565b620000c890600162000337565b620000d4919062000351565b6011556012805461ffff19168155601480546001600160a01b031916331790556200010190600a6200031f565b62000112906461c9f3680062000337565b601480546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001666012600a6200031f565b62000177906461c9f3680062000337565b60405190815260200160405180910390a3601480546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548216831790559554909416835260049091529020805490921617905562000374565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002615781600019048211156200024557620002456200020a565b808516156200025357918102915b93841c939080029062000225565b509250929050565b6000826200027a5750600162000319565b81620002895750600062000319565b8160018114620002a25760028114620002ad57620002cd565b600191505062000319565b60ff841115620002c157620002c16200020a565b50506001821b62000319565b5060208310610133831016604e8410600b8410161715620002f2575081810a62000319565b620002fe838362000220565b80600019048211156200031557620003156200020a565b0290505b92915050565b60006200033060ff84168362000269565b9392505050565b80820281158282048414176200031957620003196200020a565b6000826200036f57634e487b7160e01b600052601260045260246000fd5b500490565b6142ec80620003846000396000f3fe6080604052600436106103a65760003560e01c806350a8e016116101e7578063a9059cbb1161010d578063eafb5a3c116100a0578063fb78680d1161006f578063fb78680d14610b2c578063fdb78c0e14610b4c578063fe575a8714610b6d578063feadde9c14610b8d57600080fd5b8063eafb5a3c14610ab7578063eb50e70e14610ad7578063ee5d9c2d14610af7578063eec2744e14610b0c57600080fd5b8063b7df8b36116100dc578063b7df8b3614610a17578063bfc2fc3514610a31578063c6a276c214610a51578063dd62ed3e14610a7157600080fd5b8063a9059cbb146109c1578063ab558e4d146109e1578063b1b08f711461064d578063b3d514fb14610a0157600080fd5b8063715018a611610185578063893d20e811610154578063893d20e81461094b5780638a63bd9b146109695780638a8c523c1461097e57806395d89b411461099357600080fd5b8063715018a6146108e157806375f0a874146108f657806378648edf1461091657806380c581d11461092b57600080fd5b80635c24b074116101c15780635c24b0741461083d5780635cce86cd1461085d5780636ebd00781461089657806370a08231146108ab57600080fd5b806350a8e016146107e8578063590ffdce146108075780635a6f09181461082757600080fd5b806328577751116102cc57806336fddb041161026a5780634bbb93eb116102395780634bbb93eb1461074f5780634e718e481461076f5780634fb2e45d1461078f5780634fbee193146107af57600080fd5b806336fddb04146106d55780633f3cf56c146106f5578063452ed4f1146107155780634ada218b1461073557600080fd5b80632e8fa821116102a65780632e8fa82114610663578063313ce5671461067957806332cde6641461069557806333251a0b146106b557600080fd5b806328577751146106225780632b112e49146106385780632b28fc7a1461064d57600080fd5b806307dd79e01161034457806318160ddd1161031357806318160ddd146105ad57806323b872dd146105c257806326003957146105e25780632610eaca1461060257600080fd5b806307dd79e014610515578063095ea7b31461053f5780630dcbcf1c1461055f5780630fa604e41461059857600080fd5b806305bbedb61161038057806305bbedb61461042b578063069d955f1461044b57806306fdde03146104a15780630758d924146104f057600080fd5b806303fd2a45146103b25780630445b667146103e5578063044df7261461040957600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103f157600080fd5b506103fb600c5481565b6040519081526020016103dc565b34801561041557600080fd5b50610429610424366004613b93565b610bad565b005b34801561043757600080fd5b50610429610446366004613cc0565b610c6b565b34801561045757600080fd5b5060085461047c9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103dc565b3480156104ad57600080fd5b5060408051808201909152601181527f4b696e67204f6620416c6c20506570657300000000000000000000000000000060208201525b6040516103dc9190613d07565b3480156104fc57600080fd5b506009546103c89061010090046001600160a01b031681565b34801561052157600080fd5b5060095461052f9060ff1681565b60405190151581526020016103dc565b34801561054b57600080fd5b5061052f61055a366004613d55565b610d3c565b34801561056b57600080fd5b5061052f61057a366004613d81565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105a457600080fd5b506103fb610d53565b3480156105b957600080fd5b506103fb610d73565b3480156105ce57600080fd5b5061052f6105dd366004613d9e565b610d90565b3480156105ee57600080fd5b506104296105fd366004613ddf565b610e08565b34801561060e57600080fd5b5061042961061d366004613e01565b610f54565b34801561062e57600080fd5b506103fb600f5481565b34801561064457600080fd5b506103fb611109565b34801561065957600080fd5b506103fb6103e881565b34801561066f57600080fd5b506103fb600d5481565b34801561068557600080fd5b50604051601281526020016103dc565b3480156106a157600080fd5b506104296106b0366004613ed3565b611188565b3480156106c157600080fd5b506104296106d0366004613d81565b6112dc565b3480156106e157600080fd5b506104296106f0366004613f16565b61138e565b34801561070157600080fd5b50610429610710366004613ddf565b611401565b34801561072157600080fd5b50600a546103c8906001600160a01b031681565b34801561074157600080fd5b5060125461052f9060ff1681565b34801561075b57600080fd5b506103fb61076a366004613f34565b611559565b34801561077b57600080fd5b5061042961078a366004613f34565b61158d565b34801561079b57600080fd5b506104296107aa366004613d81565b61162b565b3480156107bb57600080fd5b5061052f6107ca366004613d81565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107f457600080fd5b5060125461052f90610100900460ff1681565b34801561081357600080fd5b50610429610822366004613f16565b61182d565b34801561083357600080fd5b506103fb60135481565b34801561084957600080fd5b50610429610858366004613d81565b6118a0565b34801561086957600080fd5b5061052f610878366004613d81565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108a257600080fd5b506103fb611a7e565b3480156108b757600080fd5b506103fb6108c6366004613d81565b6001600160a01b031660009081526020819052604090205490565b3480156108ed57600080fd5b50610429611a99565b34801561090257600080fd5b50600b546103c8906001600160a01b031681565b34801561092257600080fd5b50610429611bbe565b34801561093757600080fd5b50610429610946366004613f16565b611c15565b34801561095757600080fd5b506014546001600160a01b03166103c8565b34801561097557600080fd5b5061052f611dee565b34801561098a57600080fd5b50610429611e5e565b34801561099f57600080fd5b506040805180820190915260058152640244b4f41560dc1b60208201526104e3565b3480156109cd57600080fd5b5061052f6109dc366004613d55565b6120aa565b3480156109ed57600080fd5b506104296109fc366004613d81565b6120c1565b348015610a0d57600080fd5b506103fb6107d081565b348015610a2357600080fd5b50600e5461052f9060ff1681565b348015610a3d57600080fd5b50610429610a4c366004613b93565b61225b565b348015610a5d57600080fd5b50610429610a6c366004613d81565b612306565b348015610a7d57600080fd5b506103fb610a8c366004613f4d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ac357600080fd5b50610429610ad2366004613d81565b612387565b348015610ae357600080fd5b50610429610af2366004613d81565b612788565b348015610b0357600080fd5b50610429612848565b348015610b1857600080fd5b50610429610b27366004613f16565b612921565b348015610b3857600080fd5b50610429610b47366004613f7b565b6129aa565b348015610b5857600080fd5b50600b5461052f90600160a81b900460ff1681565b348015610b7957600080fd5b5061052f610b88366004613d81565b612c70565b348015610b9957600080fd5b50610429610ba8366004613f16565b612ce5565b6014546001600160a01b03163314610bfa5760405162461bcd60e51b8152602060048201526011602482015260008051602061429783398151915260448201526064015b60405180910390fd5b60125460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050505050565b6014546001600160a01b03163314610cb35760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b606482511115610d055760405162461bcd60e51b815260206004820152601160248201527f546f6f206d616e79206174206f6e63652e0000000000000000000000000000006044820152606401610bf1565b6012546040516302ddf6db60e11b8152620100009091046001600160a01b0316906305bbedb690610c359085908590600401613ff1565b6000610d49338484612d58565b5060015b92915050565b6000610d616012600a61410f565b601154610d6e919061411e565b905090565b6000610d816012600a61410f565b610d6e906461c9f36800614140565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610df5576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610def908490614157565b90915550505b610e00848484612e51565b949350505050565b6014546001600160a01b03163314610e505760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6064610e5e6012600a61410f565b610e6d906461c9f36800614140565b610e77919061411e565b8183610e856012600a61410f565b610e94906461c9f36800614140565b610e9e9190614140565b610ea8919061411e565b1015610f1c5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610bf1565b8082610f2a6012600a61410f565b610f39906461c9f36800614140565b610f439190614140565b610f4d919061411e565b6011555050565b6014546001600160a01b03163314610f9c5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b8051825114610fed5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610bf1565b60005b82518161ffff161015611104576110096012600a61410f565b828261ffff168151811061101f5761101f61416a565b60200260200101516110319190614140565b33600090815260208190526040902054101561108f5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610bf1565b6110f133848361ffff16815181106110a9576110a961416a565b60200260200101516012600a6110bf919061410f565b858561ffff16815181106110d5576110d561416a565b60200260200101516110e79190614140565b6000806001613327565b50806110fc81614180565b915050610ff0565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461116391906141a1565b61116f6012600a61410f565b61117e906461c9f36800614140565b610d6e9190614157565b6014546001600160a01b031633146111d05760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60095460ff16156112235760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610bf1565b6103e88361ffff161115801561123f57506107d08261ffff1611155b801561125157506103e88161ffff1611155b61129d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610bf1565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6014546001600160a01b031633146113245760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b15801561137357600080fd5b505af1158015611387573d6000803e3d6000fd5b5050505050565b6014546001600160a01b031633146113d65760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146114495760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6103e86114586012600a61410f565b611467906461c9f36800614140565b611472906005614140565b61147c919061411e565b818361148a6012600a61410f565b611499906461c9f36800614140565b6114a39190614140565b6114ad919061411e565b10156115215760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610bf1565b808261152f6012600a61410f565b61153e906461c9f36800614140565b6115489190614140565b611552919061411e565b6010555050565b600a546001600160a01b031660009081526020819052604081205461271090611583908490614140565b610d4d919061411e565b6014546001600160a01b031633146115d55760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60968111156116265760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610bf1565b600f55565b6014546001600160a01b031633146116735760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b0381166116ef5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bf1565b61deac196001600160a01b038216016117705760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bf1565b601454611787906001600160a01b0316600061182d565b61179281600161182d565b6014546001600160a01b0316600090815260208190526040902054156117db576014546001600160a01b03166000818152602081905260409020546117d9919083906110e7565b505b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6014546001600160a01b031633146118755760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146118e85760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff16156118f857600080fd5b306001600160a01b038216036119505760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610bf1565b6012805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156119d6575060408051601f3d908101601f191682019092526119d3918101906141b4565b60015b6119df57600080fd5b6009805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600a80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff191690911790556014549254611a5c9383169291900416600019612d58565b60095461110490309061010090046001600160a01b0316600019612d58565b50565b6000611a8c6012600a61410f565b601054610d6e919061411e565b6014546001600160a01b03163314611ae15760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff16611b595760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610bf1565b601454611b70906001600160a01b0316600061182d565b601480546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6014546001600160a01b03163314611c065760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6009805460ff19166001179055565b6014546001600160a01b03163314611c5d5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b80611cbb576001600160a01b03828116600081815260016020526040808220805460ff1916905560125490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610c35565b60025415611d22576203f48060025442611cd59190614157565b11611d225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610bf1565b6001600160a01b03821660009081526001602052604090205460ff1615611d8b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610bf1565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560125491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610c35565b5050565b6014546000906001600160a01b03163314611e395760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b600954611e5890309061010090046001600160a01b0316600019612d58565b50600190565b6014546001600160a01b03163314611ea65760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff1615611ef95760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610bf1565b601254610100900460ff16611f505760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610bf1565b6012546201000090046001600160a01b0316611f80576012805462010000600160b01b0319163062010000021790555b60128054600a54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526064810193909352620100009091041690636c115c3490608401600060405180830381600087803b158015611ff457600080fd5b505af1925050508015612005575060015b50601254600a546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015612088575060408051601f3d908101601f19168201909252612085918101906141e3565b60015b1561209757600c91909155600d555b6012805460ff1916600117905542601355565b60006120b7338484612e51565b5060019392505050565b6014546001600160a01b031633146121095760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff161561217157306001600160a01b038216036121715760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610bf1565b6014546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec9190614207565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190614220565b6014546001600160a01b031633146122a35760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b600b805460ff60a81b1916600160a81b84151590810291909117909155600e805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6014546001600160a01b0316331461234e5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516363513b6160e11b81526001600160a01b038381166004830152620100009092049091169063c6a276c290602401611359565b6014546001600160a01b031633146123cf5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff16156124275760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610bf1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612490919061423d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612501919061423d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561254c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612570919061423d565b600a546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661270657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ff919061423d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612670919061423d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e1919061423d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055612722565b600a80546001600160a01b0319166001600160a01b0383161790555b6009805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600a5482166000908152600160208190526040909120805460ff191690911790559154611104923092910416600019612d58565b6014546001600160a01b031633146127d05760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b0381166128265760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610bf1565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146128905760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff16156128e85760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610bf1565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a7b573d6000803e3d6000fd5b6014546001600160a01b031633146129695760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516377613a2760e11b81526001600160a01b0384811660048301528315156024830152620100009092049091169063eec2744e90604401610c35565b6014546001600160a01b031633146129f25760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b8284612a006012600a61410f565b612a0f906461c9f36800614140565b612a199190614140565b612a23919061411e565b600c558082612a346012600a61410f565b612a43906461c9f36800614140565b612a4d9190614140565b612a57919061411e565b600d819055600c541115612ab75760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610bf1565b600a546001600160a01b031660009081526020819052604090205461271090612ae1906096614140565b612aeb919061411e565b600d541115612b485760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610bf1565b620f4240612b586012600a61410f565b612b67906461c9f36800614140565b612b71919061411e565b600d541015612bd95760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bf1565b620f4240612be96012600a61410f565b612bf8906461c9f36800614140565b612c02919061411e565b600c541015612c6a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bf1565b50505050565b60125460405163fe575a8760e01b81526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190614220565b6014546001600160a01b03163314612d2d5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612da45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bf1565b6001600160a01b038216612df05760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bf1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612eb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bf1565b6001600160a01b038316612f195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bf1565b60008211612f7b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bf1565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612fa95760019250612fd7565b6001600160a01b03861660009081526001602052604090205460ff1615612fd35760019150612fd7565b5060015b612fe187876135da565b1561326e5760125460ff166130e2578061303d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610bf1565b6001600160a01b03871660009081526005602052604090205460ff1615801561307f57506001600160a01b03861660009081526005602052604090205460ff16155b156130e25760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610bf1565b82806130eb5750815b1561319a576001600160a01b03871660009081526007602052604090205460ff1615801561313257506001600160a01b03861660009081526007602052604090205460ff16155b1561319a5760105485111561319a5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610bf1565b6009546001600160a01b0387811661010090920416148015906131bb575081155b1561326e576001600160a01b03861660009081526007602052604090205460ff1661326e5760115485613203886001600160a01b031660009081526020819052604090205490565b61320d91906141a1565b111561326e5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610bf1565b811561330e57600b54600160a01b900460ff1661330e57600b54600160a81b900460ff161561330e5730600090815260208190526040902054600c54811061330c57600d54600e5460ff16156132f657600f54600a546001600160a01b0316600090815260208190526040902054612710916132e991614140565b6132f3919061411e565b90505b808210613301578091505b61330a826136f1565b505b505b61331c878787868686613327565b979650505050505050565b600061333387876135da565b156133cd5760125460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156133b6575060408051601f3d908101601f191682019092526133b391810190614220565b60015b6133bf57600080fd5b9050806133cb57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff168061340f57506001600160a01b03871660009081526006602052604090205460ff165b15613418575060005b6001600160a01b03881660009081526020819052604081208054889290613440908490614157565b909155506000905081613453578661345f565b61345f89888888613935565b9050806000808a6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461349591906141a1565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e191815260200190565b60405180910390a3601254610100900460ff166135cb576135028989613a41565b601254610100900460ff1615801561351f575061351f89896135da565b801561354457506001600160a01b03891660009081526005602052604090205460ff16155b801561356957506001600160a01b03881660009081526005602052604090205460ff16155b8015613573575083155b156135cb5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610bf1565b50600198975050505050505050565b6014546000906001600160a01b0384811691161480159061360957506014546001600160a01b03838116911614155b801561362057506014546001600160a01b03163214155b801561364557506001600160a01b03821660009081526004602052604090205460ff16155b801561366a57506001600160a01b03831660009081526004602052604090205460ff16155b801561368157506001600160a01b03821661dead14155b801561369557506001600160a01b03821615155b80156136aa57506001600160a01b0383163014155b80156136ca57506012546001600160a01b03848116620100009092041614155b80156136ea57506012546001600160a01b03838116620100009092041614155b9392505050565b600b805460ff60a01b1916600160a01b17905530600090815260036020908152604080832060095461010090046001600160a01b03168452909152902054600019146137675730600090815260036020908152604080832060095461010090046001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061379c5761379c61416a565b60200260200101906001600160a01b031690816001600160a01b031681525050600960019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561380f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613833919061423d565b816001815181106138465761384661416a565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81526101009091049091169063791ac9479061389390859060009086903090429060040161425a565b600060405180830381600087803b1580156138ad57600080fd5b505af19250505080156138be575060015b6138c85750613925565b600b546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461391a576040519150601f19603f3d011682016040523d82523d6000602084013e61391f565b606091505b50505050505b50600b805460ff60a01b19169055565b600080831561394b575060085461ffff16613975565b8215613964575060085462010000900461ffff16613975565b50600854640100000000900461ffff165b806000036139865784915050610e00565b6012546201000090046001600160a01b0316301480156139a7575046606114155b156139b157506111945b60006127106139c08388614140565b6139ca919061411e565b90508015613a375730600090815260208190526040812080548392906139f19084906141a1565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61331c8187614157565b601254610100900460ff1615613aa55760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610bf1565b613aaf82826135da565b158015613ac95750600a546001600160a01b038281169116145b15611dea576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556012805461ff001916610100179081905562010000900416613b41576012805462010000600160b01b0319163062010000021790555b600b805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020016122fa565b8015158114611a7b57600080fd5b60008060408385031215613ba657600080fd5b8235613bb181613b85565b91506020830135613bc181613b85565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c0b57613c0b613bcc565b604052919050565b600067ffffffffffffffff821115613c2d57613c2d613bcc565b5060051b60200190565b6001600160a01b0381168114611a7b57600080fd5b600082601f830112613c5d57600080fd5b81356020613c72613c6d83613c13565b613be2565b82815260059290921b84018101918181019086841115613c9157600080fd5b8286015b84811015613cb5578035613ca881613c37565b8352918301918301613c95565b509695505050505050565b60008060408385031215613cd357600080fd5b823567ffffffffffffffff811115613cea57600080fd5b613cf685828601613c4c565b9250506020830135613bc181613b85565b600060208083528351808285015260005b81811015613d3457858101830151858201604001528201613d18565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215613d6857600080fd5b8235613d7381613c37565b946020939093013593505050565b600060208284031215613d9357600080fd5b81356136ea81613c37565b600080600060608486031215613db357600080fd5b8335613dbe81613c37565b92506020840135613dce81613c37565b929592945050506040919091013590565b60008060408385031215613df257600080fd5b50508035926020909101359150565b60008060408385031215613e1457600080fd5b823567ffffffffffffffff80821115613e2c57600080fd5b613e3886838701613c4c565b9350602091508185013581811115613e4f57600080fd5b85019050601f81018613613e6257600080fd5b8035613e70613c6d82613c13565b81815260059190911b82018301908381019088831115613e8f57600080fd5b928401925b82841015613ead57833582529284019290840190613e94565b80955050505050509250929050565b803561ffff81168114613ece57600080fd5b919050565b600080600060608486031215613ee857600080fd5b613ef184613ebc565b9250613eff60208501613ebc565b9150613f0d60408501613ebc565b90509250925092565b60008060408385031215613f2957600080fd5b8235613bb181613c37565b600060208284031215613f4657600080fd5b5035919050565b60008060408385031215613f6057600080fd5b8235613f6b81613c37565b91506020830135613bc181613c37565b60008060008060808587031215613f9157600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015613fe65781516001600160a01b031687529582019590820190600101613fc1565b509495945050505050565b6040815260006140046040830185613fad565b905082151560208301529392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561406657816000190482111561404c5761404c614015565b8085161561405957918102915b93841c9390800290614030565b509250929050565b60008261407d57506001610d4d565b8161408a57506000610d4d565b81600181146140a057600281146140aa576140c6565b6001915050610d4d565b60ff8411156140bb576140bb614015565b50506001821b610d4d565b5060208310610133831016604e8410600b84101617156140e9575081810a610d4d565b6140f3838361402b565b806000190482111561410757614107614015565b029392505050565b60006136ea60ff84168361406e565b60008261413b57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610d4d57610d4d614015565b81810381811115610d4d57610d4d614015565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361419757614197614015565b6001019392505050565b80820180821115610d4d57610d4d614015565b600080604083850312156141c757600080fd5b82516141d281613c37565b6020840151909250613bc181613c37565b600080604083850312156141f657600080fd5b505080516020909101519092909150565b60006020828403121561421957600080fd5b5051919050565b60006020828403121561423257600080fd5b81516136ea81613b85565b60006020828403121561424f57600080fd5b81516136ea81613c37565b85815284602082015260a06040820152600061427960a0830186613fad565b6001600160a01b039490941660608301525060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122034f03a2bf6a866d6a6bcc8b2bd0aae2b75c0fe7539b977026e5976ee70c6ccfe64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106103a65760003560e01c806350a8e016116101e7578063a9059cbb1161010d578063eafb5a3c116100a0578063fb78680d1161006f578063fb78680d14610b2c578063fdb78c0e14610b4c578063fe575a8714610b6d578063feadde9c14610b8d57600080fd5b8063eafb5a3c14610ab7578063eb50e70e14610ad7578063ee5d9c2d14610af7578063eec2744e14610b0c57600080fd5b8063b7df8b36116100dc578063b7df8b3614610a17578063bfc2fc3514610a31578063c6a276c214610a51578063dd62ed3e14610a7157600080fd5b8063a9059cbb146109c1578063ab558e4d146109e1578063b1b08f711461064d578063b3d514fb14610a0157600080fd5b8063715018a611610185578063893d20e811610154578063893d20e81461094b5780638a63bd9b146109695780638a8c523c1461097e57806395d89b411461099357600080fd5b8063715018a6146108e157806375f0a874146108f657806378648edf1461091657806380c581d11461092b57600080fd5b80635c24b074116101c15780635c24b0741461083d5780635cce86cd1461085d5780636ebd00781461089657806370a08231146108ab57600080fd5b806350a8e016146107e8578063590ffdce146108075780635a6f09181461082757600080fd5b806328577751116102cc57806336fddb041161026a5780634bbb93eb116102395780634bbb93eb1461074f5780634e718e481461076f5780634fb2e45d1461078f5780634fbee193146107af57600080fd5b806336fddb04146106d55780633f3cf56c146106f5578063452ed4f1146107155780634ada218b1461073557600080fd5b80632e8fa821116102a65780632e8fa82114610663578063313ce5671461067957806332cde6641461069557806333251a0b146106b557600080fd5b806328577751146106225780632b112e49146106385780632b28fc7a1461064d57600080fd5b806307dd79e01161034457806318160ddd1161031357806318160ddd146105ad57806323b872dd146105c257806326003957146105e25780632610eaca1461060257600080fd5b806307dd79e014610515578063095ea7b31461053f5780630dcbcf1c1461055f5780630fa604e41461059857600080fd5b806305bbedb61161038057806305bbedb61461042b578063069d955f1461044b57806306fdde03146104a15780630758d924146104f057600080fd5b806303fd2a45146103b25780630445b667146103e5578063044df7261461040957600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103f157600080fd5b506103fb600c5481565b6040519081526020016103dc565b34801561041557600080fd5b50610429610424366004613b93565b610bad565b005b34801561043757600080fd5b50610429610446366004613cc0565b610c6b565b34801561045757600080fd5b5060085461047c9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103dc565b3480156104ad57600080fd5b5060408051808201909152601181527f4b696e67204f6620416c6c20506570657300000000000000000000000000000060208201525b6040516103dc9190613d07565b3480156104fc57600080fd5b506009546103c89061010090046001600160a01b031681565b34801561052157600080fd5b5060095461052f9060ff1681565b60405190151581526020016103dc565b34801561054b57600080fd5b5061052f61055a366004613d55565b610d3c565b34801561056b57600080fd5b5061052f61057a366004613d81565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105a457600080fd5b506103fb610d53565b3480156105b957600080fd5b506103fb610d73565b3480156105ce57600080fd5b5061052f6105dd366004613d9e565b610d90565b3480156105ee57600080fd5b506104296105fd366004613ddf565b610e08565b34801561060e57600080fd5b5061042961061d366004613e01565b610f54565b34801561062e57600080fd5b506103fb600f5481565b34801561064457600080fd5b506103fb611109565b34801561065957600080fd5b506103fb6103e881565b34801561066f57600080fd5b506103fb600d5481565b34801561068557600080fd5b50604051601281526020016103dc565b3480156106a157600080fd5b506104296106b0366004613ed3565b611188565b3480156106c157600080fd5b506104296106d0366004613d81565b6112dc565b3480156106e157600080fd5b506104296106f0366004613f16565b61138e565b34801561070157600080fd5b50610429610710366004613ddf565b611401565b34801561072157600080fd5b50600a546103c8906001600160a01b031681565b34801561074157600080fd5b5060125461052f9060ff1681565b34801561075b57600080fd5b506103fb61076a366004613f34565b611559565b34801561077b57600080fd5b5061042961078a366004613f34565b61158d565b34801561079b57600080fd5b506104296107aa366004613d81565b61162b565b3480156107bb57600080fd5b5061052f6107ca366004613d81565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107f457600080fd5b5060125461052f90610100900460ff1681565b34801561081357600080fd5b50610429610822366004613f16565b61182d565b34801561083357600080fd5b506103fb60135481565b34801561084957600080fd5b50610429610858366004613d81565b6118a0565b34801561086957600080fd5b5061052f610878366004613d81565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108a257600080fd5b506103fb611a7e565b3480156108b757600080fd5b506103fb6108c6366004613d81565b6001600160a01b031660009081526020819052604090205490565b3480156108ed57600080fd5b50610429611a99565b34801561090257600080fd5b50600b546103c8906001600160a01b031681565b34801561092257600080fd5b50610429611bbe565b34801561093757600080fd5b50610429610946366004613f16565b611c15565b34801561095757600080fd5b506014546001600160a01b03166103c8565b34801561097557600080fd5b5061052f611dee565b34801561098a57600080fd5b50610429611e5e565b34801561099f57600080fd5b506040805180820190915260058152640244b4f41560dc1b60208201526104e3565b3480156109cd57600080fd5b5061052f6109dc366004613d55565b6120aa565b3480156109ed57600080fd5b506104296109fc366004613d81565b6120c1565b348015610a0d57600080fd5b506103fb6107d081565b348015610a2357600080fd5b50600e5461052f9060ff1681565b348015610a3d57600080fd5b50610429610a4c366004613b93565b61225b565b348015610a5d57600080fd5b50610429610a6c366004613d81565b612306565b348015610a7d57600080fd5b506103fb610a8c366004613f4d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ac357600080fd5b50610429610ad2366004613d81565b612387565b348015610ae357600080fd5b50610429610af2366004613d81565b612788565b348015610b0357600080fd5b50610429612848565b348015610b1857600080fd5b50610429610b27366004613f16565b612921565b348015610b3857600080fd5b50610429610b47366004613f7b565b6129aa565b348015610b5857600080fd5b50600b5461052f90600160a81b900460ff1681565b348015610b7957600080fd5b5061052f610b88366004613d81565b612c70565b348015610b9957600080fd5b50610429610ba8366004613f16565b612ce5565b6014546001600160a01b03163314610bfa5760405162461bcd60e51b8152602060048201526011602482015260008051602061429783398151915260448201526064015b60405180910390fd5b60125460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050505050565b6014546001600160a01b03163314610cb35760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b606482511115610d055760405162461bcd60e51b815260206004820152601160248201527f546f6f206d616e79206174206f6e63652e0000000000000000000000000000006044820152606401610bf1565b6012546040516302ddf6db60e11b8152620100009091046001600160a01b0316906305bbedb690610c359085908590600401613ff1565b6000610d49338484612d58565b5060015b92915050565b6000610d616012600a61410f565b601154610d6e919061411e565b905090565b6000610d816012600a61410f565b610d6e906461c9f36800614140565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610df5576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610def908490614157565b90915550505b610e00848484612e51565b949350505050565b6014546001600160a01b03163314610e505760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6064610e5e6012600a61410f565b610e6d906461c9f36800614140565b610e77919061411e565b8183610e856012600a61410f565b610e94906461c9f36800614140565b610e9e9190614140565b610ea8919061411e565b1015610f1c5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610bf1565b8082610f2a6012600a61410f565b610f39906461c9f36800614140565b610f439190614140565b610f4d919061411e565b6011555050565b6014546001600160a01b03163314610f9c5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b8051825114610fed5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610bf1565b60005b82518161ffff161015611104576110096012600a61410f565b828261ffff168151811061101f5761101f61416a565b60200260200101516110319190614140565b33600090815260208190526040902054101561108f5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610bf1565b6110f133848361ffff16815181106110a9576110a961416a565b60200260200101516012600a6110bf919061410f565b858561ffff16815181106110d5576110d561416a565b60200260200101516110e79190614140565b6000806001613327565b50806110fc81614180565b915050610ff0565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461116391906141a1565b61116f6012600a61410f565b61117e906461c9f36800614140565b610d6e9190614157565b6014546001600160a01b031633146111d05760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60095460ff16156112235760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610bf1565b6103e88361ffff161115801561123f57506107d08261ffff1611155b801561125157506103e88161ffff1611155b61129d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610bf1565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6014546001600160a01b031633146113245760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b15801561137357600080fd5b505af1158015611387573d6000803e3d6000fd5b5050505050565b6014546001600160a01b031633146113d65760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146114495760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6103e86114586012600a61410f565b611467906461c9f36800614140565b611472906005614140565b61147c919061411e565b818361148a6012600a61410f565b611499906461c9f36800614140565b6114a39190614140565b6114ad919061411e565b10156115215760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610bf1565b808261152f6012600a61410f565b61153e906461c9f36800614140565b6115489190614140565b611552919061411e565b6010555050565b600a546001600160a01b031660009081526020819052604081205461271090611583908490614140565b610d4d919061411e565b6014546001600160a01b031633146115d55760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60968111156116265760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610bf1565b600f55565b6014546001600160a01b031633146116735760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b0381166116ef5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bf1565b61deac196001600160a01b038216016117705760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bf1565b601454611787906001600160a01b0316600061182d565b61179281600161182d565b6014546001600160a01b0316600090815260208190526040902054156117db576014546001600160a01b03166000818152602081905260409020546117d9919083906110e7565b505b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6014546001600160a01b031633146118755760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146118e85760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff16156118f857600080fd5b306001600160a01b038216036119505760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610bf1565b6012805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156119d6575060408051601f3d908101601f191682019092526119d3918101906141b4565b60015b6119df57600080fd5b6009805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600a80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff191690911790556014549254611a5c9383169291900416600019612d58565b60095461110490309061010090046001600160a01b0316600019612d58565b50565b6000611a8c6012600a61410f565b601054610d6e919061411e565b6014546001600160a01b03163314611ae15760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff16611b595760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610bf1565b601454611b70906001600160a01b0316600061182d565b601480546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6014546001600160a01b03163314611c065760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6009805460ff19166001179055565b6014546001600160a01b03163314611c5d5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b80611cbb576001600160a01b03828116600081815260016020526040808220805460ff1916905560125490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610c35565b60025415611d22576203f48060025442611cd59190614157565b11611d225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610bf1565b6001600160a01b03821660009081526001602052604090205460ff1615611d8b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610bf1565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560125491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610c35565b5050565b6014546000906001600160a01b03163314611e395760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b600954611e5890309061010090046001600160a01b0316600019612d58565b50600190565b6014546001600160a01b03163314611ea65760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b60125460ff1615611ef95760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610bf1565b601254610100900460ff16611f505760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610bf1565b6012546201000090046001600160a01b0316611f80576012805462010000600160b01b0319163062010000021790555b60128054600a54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526064810193909352620100009091041690636c115c3490608401600060405180830381600087803b158015611ff457600080fd5b505af1925050508015612005575060015b50601254600a546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015612088575060408051601f3d908101601f19168201909252612085918101906141e3565b60015b1561209757600c91909155600d555b6012805460ff1916600117905542601355565b60006120b7338484612e51565b5060019392505050565b6014546001600160a01b031633146121095760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff161561217157306001600160a01b038216036121715760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610bf1565b6014546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec9190614207565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190614220565b6014546001600160a01b031633146122a35760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b600b805460ff60a81b1916600160a81b84151590810291909117909155600e805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6014546001600160a01b0316331461234e5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516363513b6160e11b81526001600160a01b038381166004830152620100009092049091169063c6a276c290602401611359565b6014546001600160a01b031633146123cf5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff16156124275760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610bf1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612490919061423d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612501919061423d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561254c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612570919061423d565b600a546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661270657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ff919061423d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612670919061423d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e1919061423d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055612722565b600a80546001600160a01b0319166001600160a01b0383161790555b6009805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600a5482166000908152600160208190526040909120805460ff191690911790559154611104923092910416600019612d58565b6014546001600160a01b031633146127d05760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b0381166128265760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610bf1565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146128905760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b601254610100900460ff16156128e85760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610bf1565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a7b573d6000803e3d6000fd5b6014546001600160a01b031633146129695760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6012546040516377613a2760e11b81526001600160a01b0384811660048301528315156024830152620100009092049091169063eec2744e90604401610c35565b6014546001600160a01b031633146129f25760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b8284612a006012600a61410f565b612a0f906461c9f36800614140565b612a199190614140565b612a23919061411e565b600c558082612a346012600a61410f565b612a43906461c9f36800614140565b612a4d9190614140565b612a57919061411e565b600d819055600c541115612ab75760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610bf1565b600a546001600160a01b031660009081526020819052604090205461271090612ae1906096614140565b612aeb919061411e565b600d541115612b485760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610bf1565b620f4240612b586012600a61410f565b612b67906461c9f36800614140565b612b71919061411e565b600d541015612bd95760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bf1565b620f4240612be96012600a61410f565b612bf8906461c9f36800614140565b612c02919061411e565b600c541015612c6a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bf1565b50505050565b60125460405163fe575a8760e01b81526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190614220565b6014546001600160a01b03163314612d2d5760405162461bcd60e51b815260206004820152601160248201526000805160206142978339815191526044820152606401610bf1565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612da45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bf1565b6001600160a01b038216612df05760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bf1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612eb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bf1565b6001600160a01b038316612f195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bf1565b60008211612f7b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bf1565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612fa95760019250612fd7565b6001600160a01b03861660009081526001602052604090205460ff1615612fd35760019150612fd7565b5060015b612fe187876135da565b1561326e5760125460ff166130e2578061303d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610bf1565b6001600160a01b03871660009081526005602052604090205460ff1615801561307f57506001600160a01b03861660009081526005602052604090205460ff16155b156130e25760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610bf1565b82806130eb5750815b1561319a576001600160a01b03871660009081526007602052604090205460ff1615801561313257506001600160a01b03861660009081526007602052604090205460ff16155b1561319a5760105485111561319a5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610bf1565b6009546001600160a01b0387811661010090920416148015906131bb575081155b1561326e576001600160a01b03861660009081526007602052604090205460ff1661326e5760115485613203886001600160a01b031660009081526020819052604090205490565b61320d91906141a1565b111561326e5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610bf1565b811561330e57600b54600160a01b900460ff1661330e57600b54600160a81b900460ff161561330e5730600090815260208190526040902054600c54811061330c57600d54600e5460ff16156132f657600f54600a546001600160a01b0316600090815260208190526040902054612710916132e991614140565b6132f3919061411e565b90505b808210613301578091505b61330a826136f1565b505b505b61331c878787868686613327565b979650505050505050565b600061333387876135da565b156133cd5760125460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156133b6575060408051601f3d908101601f191682019092526133b391810190614220565b60015b6133bf57600080fd5b9050806133cb57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff168061340f57506001600160a01b03871660009081526006602052604090205460ff165b15613418575060005b6001600160a01b03881660009081526020819052604081208054889290613440908490614157565b909155506000905081613453578661345f565b61345f89888888613935565b9050806000808a6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461349591906141a1565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e191815260200190565b60405180910390a3601254610100900460ff166135cb576135028989613a41565b601254610100900460ff1615801561351f575061351f89896135da565b801561354457506001600160a01b03891660009081526005602052604090205460ff16155b801561356957506001600160a01b03881660009081526005602052604090205460ff16155b8015613573575083155b156135cb5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610bf1565b50600198975050505050505050565b6014546000906001600160a01b0384811691161480159061360957506014546001600160a01b03838116911614155b801561362057506014546001600160a01b03163214155b801561364557506001600160a01b03821660009081526004602052604090205460ff16155b801561366a57506001600160a01b03831660009081526004602052604090205460ff16155b801561368157506001600160a01b03821661dead14155b801561369557506001600160a01b03821615155b80156136aa57506001600160a01b0383163014155b80156136ca57506012546001600160a01b03848116620100009092041614155b80156136ea57506012546001600160a01b03838116620100009092041614155b9392505050565b600b805460ff60a01b1916600160a01b17905530600090815260036020908152604080832060095461010090046001600160a01b03168452909152902054600019146137675730600090815260036020908152604080832060095461010090046001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061379c5761379c61416a565b60200260200101906001600160a01b031690816001600160a01b031681525050600960019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561380f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613833919061423d565b816001815181106138465761384661416a565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81526101009091049091169063791ac9479061389390859060009086903090429060040161425a565b600060405180830381600087803b1580156138ad57600080fd5b505af19250505080156138be575060015b6138c85750613925565b600b546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461391a576040519150601f19603f3d011682016040523d82523d6000602084013e61391f565b606091505b50505050505b50600b805460ff60a01b19169055565b600080831561394b575060085461ffff16613975565b8215613964575060085462010000900461ffff16613975565b50600854640100000000900461ffff165b806000036139865784915050610e00565b6012546201000090046001600160a01b0316301480156139a7575046606114155b156139b157506111945b60006127106139c08388614140565b6139ca919061411e565b90508015613a375730600090815260208190526040812080548392906139f19084906141a1565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61331c8187614157565b601254610100900460ff1615613aa55760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610bf1565b613aaf82826135da565b158015613ac95750600a546001600160a01b038281169116145b15611dea576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556012805461ff001916610100179081905562010000900416613b41576012805462010000600160b01b0319163062010000021790555b600b805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020016122fa565b8015158114611a7b57600080fd5b60008060408385031215613ba657600080fd5b8235613bb181613b85565b91506020830135613bc181613b85565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c0b57613c0b613bcc565b604052919050565b600067ffffffffffffffff821115613c2d57613c2d613bcc565b5060051b60200190565b6001600160a01b0381168114611a7b57600080fd5b600082601f830112613c5d57600080fd5b81356020613c72613c6d83613c13565b613be2565b82815260059290921b84018101918181019086841115613c9157600080fd5b8286015b84811015613cb5578035613ca881613c37565b8352918301918301613c95565b509695505050505050565b60008060408385031215613cd357600080fd5b823567ffffffffffffffff811115613cea57600080fd5b613cf685828601613c4c565b9250506020830135613bc181613b85565b600060208083528351808285015260005b81811015613d3457858101830151858201604001528201613d18565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215613d6857600080fd5b8235613d7381613c37565b946020939093013593505050565b600060208284031215613d9357600080fd5b81356136ea81613c37565b600080600060608486031215613db357600080fd5b8335613dbe81613c37565b92506020840135613dce81613c37565b929592945050506040919091013590565b60008060408385031215613df257600080fd5b50508035926020909101359150565b60008060408385031215613e1457600080fd5b823567ffffffffffffffff80821115613e2c57600080fd5b613e3886838701613c4c565b9350602091508185013581811115613e4f57600080fd5b85019050601f81018613613e6257600080fd5b8035613e70613c6d82613c13565b81815260059190911b82018301908381019088831115613e8f57600080fd5b928401925b82841015613ead57833582529284019290840190613e94565b80955050505050509250929050565b803561ffff81168114613ece57600080fd5b919050565b600080600060608486031215613ee857600080fd5b613ef184613ebc565b9250613eff60208501613ebc565b9150613f0d60408501613ebc565b90509250925092565b60008060408385031215613f2957600080fd5b8235613bb181613c37565b600060208284031215613f4657600080fd5b5035919050565b60008060408385031215613f6057600080fd5b8235613f6b81613c37565b91506020830135613bc181613c37565b60008060008060808587031215613f9157600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015613fe65781516001600160a01b031687529582019590820190600101613fc1565b509495945050505050565b6040815260006140046040830185613fad565b905082151560208301529392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561406657816000190482111561404c5761404c614015565b8085161561405957918102915b93841c9390800290614030565b509250929050565b60008261407d57506001610d4d565b8161408a57506000610d4d565b81600181146140a057600281146140aa576140c6565b6001915050610d4d565b60ff8411156140bb576140bb614015565b50506001821b610d4d565b5060208310610133831016604e8410600b84101617156140e9575081810a610d4d565b6140f3838361402b565b806000190482111561410757614107614015565b029392505050565b60006136ea60ff84168361406e565b60008261413b57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610d4d57610d4d614015565b81810381811115610d4d57610d4d614015565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361419757614197614015565b6001019392505050565b80820180821115610d4d57610d4d614015565b600080604083850312156141c757600080fd5b82516141d281613c37565b6020840151909250613bc181613c37565b600080604083850312156141f657600080fd5b505080516020909101519092909150565b60006020828403121561421957600080fd5b5051919050565b60006020828403121561423257600080fd5b81516136ea81613b85565b60006020828403121561424f57600080fd5b81516136ea81613c37565b85815284602082015260a06040820152600061427960a0830186613fad565b6001600160a01b039490941660608301525060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122034f03a2bf6a866d6a6bcc8b2bd0aae2b75c0fe7539b977026e5976ee70c6ccfe64736f6c63430008130033
Deployed Bytecode Sourcemap
4392:21249:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5697:73;;;;;;;;;;;;5728:42;5697:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5697:73:0;;;;;;;;5946:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5946:28:0;245:177:1;14976:153:0;;;;;;;;;;-1:-1:-1;14976:153:0;;;;;:::i;:::-;;:::i;:::-;;14098:341;;;;;;;;;;-1:-1:-1;14098:341:0;;;;;:::i;:::-;;:::i;5284:107::-;;;;;;;;;;-1:-1:-1;5284:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;3120:6:1;3153:15;;;3135:34;;3205:15;;;3200:2;3185:18;;3178:43;3257:15;;3237:18;;;3230:43;;;;3098:2;3083:18;5284:107:0;2914:365:1;9340:80:0;;;;;;;;;;-1:-1:-1;9412:5:0;;;;;;;;;;;;;;;;;9340:80;;;;;;;:::i;5636:26::-;;;;;;;;;;-1:-1:-1;5636:26:0;;;;;;;-1:-1:-1;;;;;5636:26:0;;;5603;;;;;;;;;;-1:-1:-1;5603:26:0;;;;;;;;;;;4250:14:1;;4243:22;4225:41;;4213:2;4198:18;5603:26:0;4085:187:1;9948:161:0;;;;;;;;;;-1:-1:-1;9948:161:0;;;;;:::i;:::-;;:::i;13322:140::-;;;;;;;;;;-1:-1:-1;13322:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;13420:34:0;13396:4;13420:34;;;:25;:34;;;;;;;;;13322:140;16656:114;;;;;;;;;;;;;:::i;9075:83::-;;;;;;;;;;;;;:::i;10618:306::-;;;;;;;;;;-1:-1:-1;10618:306:0;;;;;:::i;:::-;;:::i;16268:264::-;;;;;;;;;;-1:-1:-1;16268:264:0;;;;;:::i;:::-;;:::i;23353:447::-;;;;;;;;;;-1:-1:-1;23353:447:0;;;;;:::i;:::-;;:::i;6054:33::-;;;;;;;;;;;;;;;;13626:141;;;;;;;;;;;;;:::i;5400:42::-;;;;;;;;;;;;5438:4;5400:42;;5981:25;;;;;;;;;;;;;;;;9164:80;;;;;;;;;;-1:-1:-1;9164:80:0;;5095:2;6848:36:1;;6836:2;6821:18;9164:80:0;6706:184:1;15327:453:0;;;;;;;;;;-1:-1:-1;15327:453:0;;;;;:::i;:::-;;:::i;14858:110::-;;;;;;;;;;-1:-1:-1;14858:110:0;;;;;:::i;:::-;;:::i;12897:140::-;;;;;;;;;;-1:-1:-1;12897:140:0;;;;;:::i;:::-;;:::i;15987:273::-;;;;;;;;;;-1:-1:-1;15987:273:0;;;;;:::i;:::-;;:::i;5669:21::-;;;;;;;;;;-1:-1:-1;5669:21:0;;;;-1:-1:-1;;;;;5669:21:0;;;6210:34;;;;;;;;;;-1:-1:-1;6210:34:0;;;;;;;;16778:189;;;;;;;;;;-1:-1:-1;16778:189:0;;;;;:::i;:::-;;:::i;17682:217::-;;;;;;;;;;-1:-1:-1;17682:217:0;;;;;:::i;:::-;;:::i;7707:654::-;;;;;;;;;;-1:-1:-1;7707:654:0;;;;;:::i;:::-;;:::i;13045:127::-;;;;;;;;;;-1:-1:-1;13045:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;13136:28:0;13112:4;13136:28;;;:19;:28;;;;;;;;;13045:127;6251:36;;;;;;;;;;-1:-1:-1;6251:36:0;;;;;;;;;;;13180:134;;;;;;;;;;-1:-1:-1;13180:134:0;;;;;:::i;:::-;;:::i;6324:26::-;;;;;;;;;;;;;;;;12192:557;;;;;;;;;;-1:-1:-1;12192:557:0;;;;;:::i;:::-;;:::i;12757:132::-;;;;;;;;;;-1:-1:-1;12757:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;12851:30:0;12827:4;12851:30;;;:21;:30;;;;;;;;;12757:132;16540:108;;;;;;;;;;;;;:::i;9650:117::-;;;;;;;;;;-1:-1:-1;9650:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9743:16:0;9716:7;9743:16;;;;;;;;;;;;9650:117;8369:310;;;;;;;;;;;;;:::i;5777:92::-;;;;;;;;;;-1:-1:-1;5777:92:0;;;;-1:-1:-1;;;;;5777:92:0;;;15137:182;;;;;;;;;;;;;:::i;11620:564::-;;;;;;;;;;-1:-1:-1;11620:564:0;;;;;:::i;:::-;;:::i;9426:79::-;;;;;;;;;;-1:-1:-1;9496:6:0;;-1:-1:-1;;;;;9496:6:0;9426:79;;10435:175;;;;;;;;;;;;;:::i;22156:695::-;;;;;;;;;;;;;:::i;9250:84::-;;;;;;;;;;-1:-1:-1;9324:7:0;;;;;;;;;;;;-1:-1:-1;;;9324:7:0;;;;9250:84;;9775:165;;;;;;;;;;-1:-1:-1;9775:165:0;;;;;:::i;:::-;;:::i;23049:296::-;;;;;;;;;;-1:-1:-1;23049:296:0;;;;;:::i;:::-;;:::i;5449:43::-;;;;;;;;;;;;5488:4;5449:43;;6013:34;;;;;;;;;;-1:-1:-1;6013:34:0;;;;;;;;17907:263;;;;;;;;;;-1:-1:-1;17907:263:0;;;;;:::i;:::-;;:::i;14584:202::-;;;;;;;;;;-1:-1:-1;14584:202:0;;;;;:::i;:::-;;:::i;9511:133::-;;;;;;;;;;-1:-1:-1;9511:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9613:19:0;;;9595:7;9613:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9511:133;10932:680;;;;;;;;;;-1:-1:-1;10932:680:0;;;;;:::i;:::-;;:::i;15788:191::-;;;;;;;;;;-1:-1:-1;15788:191:0;;;;;:::i;:::-;;:::i;22859:182::-;;;;;;;;;;;;;:::i;13839:251::-;;;;;;;;;;-1:-1:-1;13839:251:0;;;;;:::i;:::-;;:::i;16975:699::-;;;;;;;;;;-1:-1:-1;16975:699:0;;;;;:::i;:::-;;:::i;5900:39::-;;;;;;;;;;-1:-1:-1;5900:39:0;;;;-1:-1:-1;;;5900:39:0;;;;;;14447:129;;;;;;;;;;-1:-1:-1;14447:129:0;;;;;:::i;:::-;;:::i;13470:148::-;;;;;;;;;;-1:-1:-1;13470:148:0;;;;;:::i;:::-;;:::i;14976:153::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;;;;;;;;;15071:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;15071:50:0;;9787:14:1;;9780:22;15071:50:0::1;::::0;::::1;9762:41:1::0;9846:14;;9839:22;9819:18;;;9812:50;15071:11:0;;;::::1;-1:-1:-1::0;;;;;15071:11:0::1;::::0;:26:::1;::::0;9735:18:1;;15071:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14976:153:::0;;:::o;14098:341::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;14337:3:::1;14318:8;:15;:22;;14310:52;;;::::0;-1:-1:-1;;;14310:52:0;;10075:2:1;14310:52:0::1;::::0;::::1;10057:21:1::0;10114:2;10094:18;;;10087:30;10153:19;10133:18;;;10126:47;10190:18;;14310:52:0::1;9873:341:1::0;14310:52:0::1;14373:11;::::0;:58:::1;::::0;-1:-1:-1;;;14373:58:0;;:11;;;::::1;-1:-1:-1::0;;;;;14373:11:0::1;::::0;:39:::1;::::0;:58:::1;::::0;14413:8;;14423:7;;14373:58:::1;;;:::i;9948:161::-:0;10025:4;10042:37;10051:10;10063:7;10072:6;10042:8;:37::i;:::-;-1:-1:-1;10097:4:0;9948:161;;;;;:::o;16656:114::-;16703:7;16748:13;5095:2;16748;:13;:::i;:::-;16730:14;;:32;;;;:::i;:::-;16723:39;;16656:114;:::o;9075:83::-;9130:7;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;;4932:15;5139:30;:::i;10618:306::-;-1:-1:-1;;;;;10739:19:0;;10718:4;10739:19;;;:11;:19;;;;;;;;10759:10;10739:31;;;;;;;;-1:-1:-1;;10739:52:0;10735:126;;-1:-1:-1;;;;;10808:19:0;;;;;;:11;:19;;;;;;;;10828:10;10808:31;;;;;;;:41;;10843:6;;10808:19;:41;;10843:6;;10808:41;:::i;:::-;;;;-1:-1:-1;;10735:126:0;10880:36;10890:6;10898:9;10909:6;10880:9;:36::i;:::-;10873:43;10618:306;-1:-1:-1;;;;10618:306:0:o;16268:264::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;16410:3:::1;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16400:13;;;;:::i;:::-;16388:7:::0;16377;5156:13:::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16367:17;;;;:::i;:::-;16366:29;;;;:::i;:::-;:48;;16358:109;;;::::0;-1:-1:-1;;;16358:109:0;;13300:2:1;16358:109:0::1;::::0;::::1;13282:21:1::0;13339:2;13319:18;;;13312:30;13378:34;13358:18;;;13351:62;13449:18;13429;;;13422:46;13485:19;;16358:109:0::1;13098:412:1::0;16358:109:0::1;16517:7:::0;16506;5156:13:::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16496:17;;;;:::i;:::-;16495:29;;;;:::i;:::-;16478:14;:46:::0;-1:-1:-1;;16268:264:0:o;23353:447::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;23488:7:::1;:14;23469:8;:15;:33;23461:67;;;::::0;-1:-1:-1;;;23461:67:0;;13717:2:1;23461:67:0::1;::::0;::::1;13699:21:1::0;13756:2;13736:18;;;13729:30;13795:23;13775:18;;;13768:51;13836:18;;23461:67:0::1;13515:345:1::0;23461:67:0::1;23544:8;23539:254;23562:8;:15;23558:1;:19;;;23539:254;;;23643:13;5095:2;23643;:13;:::i;:::-;23632:7;23640:1;23632:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;23617:10;9716:7:::0;9743:16;;;;;;;;;;;23607:49:::1;;23599:80;;;::::0;-1:-1:-1;;;23599:80:0;;14199:2:1;23599:80:0::1;::::0;::::1;14181:21:1::0;14238:2;14218:18;;;14211:30;14277:20;14257:18;;;14250:48;14315:18;;23599:80:0::1;13997:342:1::0;23599:80:0::1;23694:87;23711:10;23723:8;23732:1;23723:11;;;;;;;;;;:::i;:::-;;;;;;;5095:2;23747;:13;;;;:::i;:::-;23736:7;23744:1;23736:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;23762:5;23769::::0;23776:4:::1;23694:16;:87::i;:::-;-1:-1:-1::0;23579:3:0;::::1;::::0;::::1;:::i;:::-;;;;23539:254;;;;23353:447:::0;;:::o;13626:141::-;13679:7;9743:16;;;;;;5728:42;9743:16;;;;13718:39;;9743:16;13718:39;:::i;:::-;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;;4932:15;5139:30;:::i;:::-;13707:51;;;;:::i;15327:453::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;15435:14:::1;::::0;::::1;;15434:15;15426:45;;;::::0;-1:-1:-1;;;15426:45:0;;14878:2:1;15426:45:0::1;::::0;::::1;14860:21:1::0;14917:2;14897:18;;;14890:30;14956:19;14936:18;;;14929:47;14993:18;;15426:45:0::1;14676:341:1::0;15426:45:0::1;5438:4;15490:6;:21;;;;:65;;;;;5488:4;15532:7;:23;;;;15490:65;:117;;;;;5542:4;15576:11;:31;;;;15490:117;15482:170;;;::::0;-1:-1:-1;;;15482:170:0;;15224:2:1;15482:170:0::1;::::0;::::1;15206:21:1::0;15263:2;15243:18;;;15236:30;15302:25;15282:18;;;15275:53;15345:18;;15482:170:0::1;15022:347:1::0;15482:170:0::1;15663:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;15699:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;15737:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;15327:453::o;14858:110::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;14927:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;14927:33:0;;-1:-1:-1;;;;;178:55:1;;;14927:33:0::1;::::0;::::1;160:74:1::0;14927:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;14927:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14858:110:::0;:::o;12897:140::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;-1:-1:-1;;;;;12989:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;12989:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12897:140::o;15987:273::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;16132:4:::1;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16118:11;::::0;16128:1:::1;16118:11;:::i;:::-;:18;;;;:::i;:::-;16106:7:::0;16095;5156:13:::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16085:17;;;;:::i;:::-;16084:29;;;;:::i;:::-;:53;;16076:121;;;::::0;-1:-1:-1;;;16076:121:0;;15576:2:1;16076:121:0::1;::::0;::::1;15558:21:1::0;15615:2;15595:18;;;15588:30;15654:34;15634:18;;;15627:62;15725:25;15705:18;;;15698:53;15768:19;;16076:121:0::1;15374:419:1::0;16076:121:0::1;16245:7:::0;16234;5156:13:::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;16224:17;;;;:::i;:::-;16223:29;;;;:::i;:::-;16208:12;:44:::0;-1:-1:-1;;15987:273:0:o;16778:189::-;16907:6;;-1:-1:-1;;;;;16907:6:0;16869:7;9743:16;;;;;;;;;;;5589:5;;16897:41;;16917:21;;16897:41;:::i;:::-;16896:62;;;;:::i;17682:217::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;17812:3:::1;17786:22;:29;;17778:64;;;::::0;-1:-1:-1;;;17778:64:0;;16000:2:1;17778:64:0::1;::::0;::::1;15982:21:1::0;16039:2;16019:18;;;16012:30;16078:24;16058:18;;;16051:52;16120:18;;17778:64:0::1;15798:346:1::0;17778:64:0::1;17853:13;:38:::0;17682:217::o;7707:654::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;-1:-1:-1;;;;;7786:22:0;::::1;7778:96;;;::::0;-1:-1:-1;;;7778:96:0;;16351:2:1;7778:96:0::1;::::0;::::1;16333:21:1::0;16390:2;16370:18;;;16363:30;16429:34;16409:18;;;16402:62;16500:31;16480:18;;;16473:59;16549:19;;7778:96:0::1;16149:425:1::0;7778:96:0::1;-1:-1:-1::0;;;;;;;7893:16:0;::::1;::::0;7885:90:::1;;;::::0;-1:-1:-1;;;7885:90:0;;16351:2:1;7885:90:0::1;::::0;::::1;16333:21:1::0;16390:2;16370:18;;;16363:30;16429:34;16409:18;;;16402:62;16500:31;16480:18;;;16473:59;16549:19;;7885:90:0::1;16149:425:1::0;7885:90:0::1;8006:6;::::0;7986:34:::1;::::0;-1:-1:-1;;;;;8006:6:0::1;;7986:19;:34::i;:::-;8031:35;8051:8;8061:4;8031:19;:35::i;:::-;8101:6;::::0;-1:-1:-1;;;;;8101:6:0::1;8111:1;9743:16:::0;;;;;;;;;;;8091:21;8087:127:::1;;8146:6;::::0;-1:-1:-1;;;;;8146:6:0::1;9716:7:::0;9743:16;;;;;;;;;;;8129:73:::1;::::0;8146:6;8154:8;;8164:17:::1;9650:117:::0;8129:73:::1;;8087:127;8253:6;::::0;;-1:-1:-1;;;;;8270:17:0;;::::1;-1:-1:-1::0;;;;;;8270:17:0;::::1;::::0;::::1;::::0;;;8303:40:::1;::::0;8253:6;::::1;::::0;8270:17;8253:6;;8303:40:::1;::::0;8234:16:::1;::::0;8303:40:::1;7767:594;7707:654:::0;:::o;13180:134::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;-1:-1:-1;;;;;13268:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;13268:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13180:134::o;12192:557::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;12267:14:::1;::::0;::::1;;12266:15;12258:24;;;::::0;::::1;;12317:4;-1:-1:-1::0;;;;;12301:21:0;::::1;::::0;12293:48:::1;;;::::0;-1:-1:-1;;;12293:48:0;;16781:2:1;12293:48:0::1;::::0;::::1;16763:21:1::0;16820:2;16800:18;;;16793:30;16859:16;16839:18;;;16832:44;16893:18;;12293:48:0::1;16579:338:1::0;12293:48:0::1;12352:11;:31:::0;;-1:-1:-1;;;;;;12352:31:0::1;::::0;-1:-1:-1;;;;;12352:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12398:23:::1;::::0;;-1:-1:-1;;;12398:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12398:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;12398:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;12398:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;12394:348;;12731:8;::::0;::::1;12394:348;12485:9;:29:::0;;-1:-1:-1;;12485:29:0::1;;-1:-1:-1::0;;;;;12485:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12516:6:::1;:22:::0;;-1:-1:-1;;;;;;12516:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12540:15:0;;;-1:-1:-1;12540:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12540:22:0::1;::::0;;::::1;::::0;;12587:6:::1;::::0;12603:9;;12578:55:::1;::::0;12587:6;::::1;::::0;12603:9;;::::1;;-1:-1:-1::0;;12578:8:0::1;:55::i;:::-;12680:9;::::0;12648:62:::1;::::0;12665:4:::1;::::0;12680:9:::1;::::0;::::1;-1:-1:-1::0;;;;;12680:9:0::1;-1:-1:-1::0;;12648:8:0::1;:62::i;12394:348::-;12192:557:::0;:::o;16540:108::-;16583:7;16626:13;5095:2;16626;:13;:::i;:::-;16610:12;;:30;;;;:::i;8369:310::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;8436:14:::1;::::0;::::1;;8428:74;;;::::0;-1:-1:-1;;;8428:74:0;;17514:2:1;8428:74:0::1;::::0;::::1;17496:21:1::0;17553:2;17533:18;;;17526:30;17592:34;17572:18;;;17565:62;17663:17;17643:18;;;17636:45;17698:19;;8428:74:0::1;17312:411:1::0;8428:74:0::1;8533:6;::::0;8513:34:::1;::::0;-1:-1:-1;;;;;8533:6:0::1;;8513:19;:34::i;:::-;8577:6;::::0;;-1:-1:-1;;;;;;8594:19:0;::::1;::::0;;;8629:42:::1;::::0;-1:-1:-1;;;;;8577:6:0;;::::1;::::0;8558:16:::1;::::0;8577:6;;8629:42:::1;::::0;8558:16;;8629:42:::1;8417:262;8369:310::o:0;15137:182::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;15290:14:::1;:21:::0;;-1:-1:-1;;15290:21:0::1;15307:4;15290:21;::::0;;15137:182::o;11620:564::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;11702:7:::1;11697:480;;-1:-1:-1::0;;;;;11726:13:0;;::::1;11742:5;11726:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;11726:21:0::1;::::0;;11762:11:::1;::::0;:34;;-1:-1:-1;;;11762:34:0;;::::1;::::0;::::1;17896:74:1::0;;;;17986:18;;;17979:50;;;;11762:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;17869:18:1;;11762:34:0::1;17728:307:1::0;11697:480:0::1;11833:17;::::0;:22;11829:135:::1;;11922:6;11902:17;;11884:15;:35;;;;:::i;:::-;:44;11876:72;;;::::0;-1:-1:-1;;;11876:72:0;;18242:2:1;11876:72:0::1;::::0;::::1;18224:21:1::0;18281:2;18261:18;;;18254:30;18320:17;18300:18;;;18293:45;18355:18;;11876:72:0::1;18040:339:1::0;11876:72:0::1;-1:-1:-1::0;;;;;11987:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11986:14;11978:54;;;::::0;-1:-1:-1;;;11978:54:0;;18586:2:1;11978:54:0::1;::::0;::::1;18568:21:1::0;18625:2;18605:18;;;18598:30;18664:29;18644:18;;;18637:57;18711:18;;11978:54:0::1;18384:351:1::0;11978:54:0::1;-1:-1:-1::0;;;;;12047:13:0;;::::1;;::::0;;;12063:4:::1;12047:13;::::0;;;;;;;;:20;;-1:-1:-1;;12047:20:0::1;::::0;::::1;::::0;;12102:15:::1;12082:17;:35:::0;12132:11:::1;::::0;:33;;-1:-1:-1;;;12132:33:0;;::::1;::::0;::::1;17896:74:1::0;;;;17986:18;;;17979:50;12132:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;17869:18:1;;12132:33:0::1;17728:307:1::0;11697:480:0::1;11620:564:::0;;:::o;10435:175::-;7561:6;;10501:4;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;10550:9:::1;::::0;10518:62:::1;::::0;10535:4:::1;::::0;10550:9:::1;::::0;::::1;-1:-1:-1::0;;;;;10550:9:0::1;-1:-1:-1::0;;10518:8:0::1;:62::i;:::-;-1:-1:-1::0;10598:4:0::1;10435:175:::0;:::o;22156:695::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;22218:14:::1;::::0;::::1;;22217:15;22209:52;;;::::0;-1:-1:-1;;;22209:52:0;;18942:2:1;22209:52:0::1;::::0;::::1;18924:21:1::0;18981:2;18961:18;;;18954:30;19020:26;19000:18;;;18993:54;19064:18;;22209:52:0::1;18740:348:1::0;22209:52:0::1;22280:16;::::0;::::1;::::0;::::1;;;22272:53;;;::::0;-1:-1:-1;;;22272:53:0;;19295:2:1;22272:53:0::1;::::0;::::1;19277:21:1::0;19334:2;19314:18;;;19307:30;19373:26;19353:18;;;19346:54;19417:18;;22272:53:0::1;19093:348:1::0;22272:53:0::1;22348:11;::::0;;;::::1;-1:-1:-1::0;;;;;22348:11:0::1;22336:106;;22390:11;:40:::0;;-1:-1:-1;;;;;;22390:40:0::1;22424:4;22390:40:::0;::::1;;::::0;;22336:106:::1;22456:11;::::0;;22478:6:::1;::::0;22456:87:::1;::::0;-1:-1:-1;;;22456:87:0;;-1:-1:-1;;;;;22478:6:0;;::::1;22456:87;::::0;::::1;19669:74:1::0;19791:10;22493:12:0::1;19779:23:1::0;19759:18;;;19752:51;19851:18;22515:15:0::1;19839:31:1::0;19819:18;;;19812:59;19887:18;;;19880:45;;;;22456:11:0;;;::::1;;::::0;:21:::1;::::0;19641:19:1;;22456:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;22569:11:0::1;::::0;22600:6:::1;::::0;-1:-1:-1;;;;;22600:6:0;;::::1;9716:7:::0;9743:16;;;;;;;;;;;;;22569:39;;-1:-1:-1;;;22569:39:0;;::::1;::::0;::::1;391:25:1::0;;;;22569:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;22569:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;22569:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;22569:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;22565:207:::0;::::1;;22680:13;:29:::0;;;;22724:10:::1;:27:::0;22565:207:::1;22782:14;:21:::0;;-1:-1:-1;;22782:21:0::1;22799:4;22782:21;::::0;;22828:15:::1;22814:11;:29:::0;22156:695::o;9775:165::-;9853:4;9870:40;9880:10;9892:9;9903:6;9870:9;:40::i;:::-;-1:-1:-1;9928:4:0;;9775:165;-1:-1:-1;;;9775:165:0:o;23049:296::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;23127:16:::1;::::0;::::1;::::0;::::1;;;23123:111;;;23185:4;-1:-1:-1::0;;;;;23168:22:0;::::1;::::0;23160:62:::1;;;::::0;-1:-1:-1;;;23160:62:0;;20388:2:1;23160:62:0::1;::::0;::::1;20370:21:1::0;20427:2;20407:18;;;20400:30;20466:29;20446:18;;;20439:57;20513:18;;23160:62:0::1;20186:351:1::0;23160:62:0::1;23298:6;::::0;23306:30:::1;::::0;-1:-1:-1;;;23306:30:0;;23330:4:::1;23306:30;::::0;::::1;160:74:1::0;23266:5:0;;-1:-1:-1;;;;;23283:14:0;;::::1;::::0;::::1;::::0;23298:6;;;::::1;::::0;23283:14;;23306:15:::1;::::0;133:18:1;;23306:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23283:54;::::0;-1:-1:-1;;;;;;23283:54:0::1;::::0;;;;;;-1:-1:-1;;;;;20923:55:1;;;23283:54:0::1;::::0;::::1;20905:74:1::0;20995:18;;;20988:34;20878:18;;23283:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17907:263::-:0;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;18016:19:::1;:33:::0;;-1:-1:-1;;;;18016:33:0::1;-1:-1:-1::0;;;18016:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;18060:22:::1;:47:::0;;-1:-1:-1;;18060:47:0::1;::::0;::::1;;;::::0;;18123:39:::1;::::0;4225:41:1;;;18123:39:0::1;::::0;4213:2:1;4198:18;18123:39:0::1;;;;;;;;17907:263:::0;;:::o;14584:202::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;14740:11:::1;::::0;:38:::1;::::0;-1:-1:-1;;;14740:38:0;;-1:-1:-1;;;;;178:55:1;;;14740:38:0::1;::::0;::::1;160:74:1::0;14740:11:0;;;::::1;::::0;;::::1;::::0;:29:::1;::::0;133:18:1;;14740:38:0::1;14:226:1::0;10932:680:0;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;11012:16:::1;::::0;::::1;::::0;::::1;;;11011:17;11003:60;;;::::0;-1:-1:-1;;;11003:60:0;;21485:2:1;11003:60:0::1;::::0;::::1;21467:21:1::0;21524:2;21504:18;;;21497:30;21563:32;21543:18;;;21536:60;21613:18;;11003:60:0::1;21283:354:1::0;11003:60:0::1;11074:20;11107:9;11074:43;;11128:16;11158:10;-1:-1:-1::0;;;;;11158:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11147:40:0::1;;11196:4;11203:10;-1:-1:-1::0;;;;;11203:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11147:74;::::0;-1:-1:-1;;;;;;11147:74:0::1;::::0;;;;;;-1:-1:-1;;;;;22151:15:1;;;11147:74:0::1;::::0;::::1;22133:34:1::0;22203:15;;22183:18;;;22176:43;22045:18;;11147:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11240:6;::::0;-1:-1:-1;;;;;11240:6:0;;::::1;11250:5;11232:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;11232:23:0::1;::::0;;11128:93;;-1:-1:-1;11270:22:0;::::1;11266:200;;11329:10;-1:-1:-1::0;;;;;11329:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11318:43:0::1;;11370:4;11377:10;-1:-1:-1::0;;;;;11377:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11318:77;::::0;-1:-1:-1;;;;;;11318:77:0::1;::::0;;;;;;-1:-1:-1;;;;;22151:15:1;;;11318:77:0::1;::::0;::::1;22133:34:1::0;22203:15;;22183:18;;;22176:43;22045:18;;11318:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11309:6;:86:::0;;-1:-1:-1;;;;;;11309:86:0::1;-1:-1:-1::0;;;;;11309:86:0;;;::::1;::::0;;;::::1;::::0;;11266:200:::1;;;11437:6;:17:::0;;-1:-1:-1;;;;;;11437:17:0::1;-1:-1:-1::0;;;;;11437:17:0;::::1;;::::0;;11266:200:::1;11476:9;:22:::0;;-1:-1:-1;;11476:22:0::1;;-1:-1:-1::0;;;;;11476:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11517:6:::1;::::0;;::::1;-1:-1:-1::0;11509:15:0;;;-1:-1:-1;11509:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11509:22:0::1;::::0;;::::1;::::0;;11574:9;;11542:62:::1;::::0;11559:4:::1;::::0;11574:9;::::1;;-1:-1:-1::0;;11542:8:0::1;:62::i;15788:191::-:0;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;-1:-1:-1;;;;;15873:23:0;::::1;15865:59;;;::::0;-1:-1:-1;;;15865:59:0;;22432:2:1;15865:59:0::1;::::0;::::1;22414:21:1::0;22471:2;22451:18;;;22444:30;22510:25;22490:18;;;22483:53;22553:18;;15865:59:0::1;22230:347:1::0;15865:59:0::1;15935:15;:36:::0;;-1:-1:-1;;;;;;15935:36:0::1;-1:-1:-1::0;;;;;15935:36:0;;;::::1;::::0;;;::::1;::::0;;15788:191::o;22859:182::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;22926:16:::1;::::0;::::1;::::0;::::1;;;22925:17;22917:58;;;::::0;-1:-1:-1;;;22917:58:0;;22784:2:1;22917:58:0::1;::::0;::::1;22766:21:1::0;22823:2;22803:18;;;22796:30;22862;22842:18;;;22835:58;22910:18;;22917:58:0::1;22582:352:1::0;22917:58:0::1;22994:6;::::0;22986:47:::1;::::0;-1:-1:-1;;;;;22994:6:0;;::::1;::::0;23011:21:::1;22986:47:::0;::::1;;;::::0;22994:6:::1;22986:47:::0;22994:6;22986:47;23011:21;22994:6;22986:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;13839:251:::0;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;14033:11:::1;::::0;:49:::1;::::0;-1:-1:-1;;;14033:49:0;;-1:-1:-1;;;;;17914:55:1;;;14033:49:0::1;::::0;::::1;17896:74:1::0;18013:14;;18006:22;17986:18;;;17979:50;14033:11:0;;;::::1;::::0;;::::1;::::0;:31:::1;::::0;17869:18:1;;14033:49:0::1;17728:307:1::0;16975:699:0;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;17175:16;17155;5156:13:::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;17145:26;;;;:::i;:::-;17144:47;;;;:::i;:::-;17128:13;:63:::0;17243:13;17226;5156::::1;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;17216:23;;;;:::i;:::-;17215:41;;;;:::i;:::-;17202:10;:54:::0;;;17275:13:::1;::::0;:27:::1;;17267:73;;;::::0;-1:-1:-1;;;17267:73:0;;23141:2:1;17267:73:0::1;::::0;::::1;23123:21:1::0;23180:2;23160:18;;;23153:30;23219:34;23199:18;;;23192:62;-1:-1:-1;;;23270:18:1;;;23263:31;23311:19;;17267:73:0::1;22939:397:1::0;17267:73:0::1;17384:6;::::0;-1:-1:-1;;;;;17384:6:0::1;9716:7:::0;9743:16;;;;;;;;;;;5589:5:::1;::::0;17374:23:::1;::::0;17394:3:::1;17374:23;:::i;:::-;17373:44;;;;:::i;:::-;17359:10;;:58;;17351:106;;;::::0;-1:-1:-1;;;17351:106:0;;23543:2:1;17351:106:0::1;::::0;::::1;23525:21:1::0;23582:2;23562:18;;;23555:30;23621:34;23601:18;;;23594:62;-1:-1:-1;;;23672:18:1;;;23665:33;23715:19;;17351:106:0::1;23341:399:1::0;17351:106:0::1;17500:9;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;17490:19;;;;:::i;:::-;17476:10;;:33;;17468:92;;;::::0;-1:-1:-1;;;17468:92:0;;23947:2:1;17468:92:0::1;::::0;::::1;23929:21:1::0;23986:2;23966:18;;;23959:30;24025:34;24005:18;;;23998:62;-1:-1:-1;;;24076:18:1;;;24069:44;24130:19;;17468:92:0::1;23745:410:1::0;17468:92:0::1;17606:9;5156:13;5095:2;5156;:13;:::i;:::-;5139:30;::::0;4932:15:::1;5139:30;:::i;:::-;17596:19;;;;:::i;:::-;17579:13;;:36;;17571:95;;;::::0;-1:-1:-1;;;17571:95:0;;23947:2:1;17571:95:0::1;::::0;::::1;23929:21:1::0;23986:2;23966:18;;;23959:30;24025:34;24005:18;;;23998:62;-1:-1:-1;;;24076:18:1;;;24069:44;24130:19;;17571:95:0::1;23745:410:1::0;17571:95:0::1;16975:699:::0;;;;:::o;14447:129::-;14534:11;;:34;;-1:-1:-1;;;14534:34:0;;-1:-1:-1;;;;;178:55:1;;;14534:34:0;;;160:74:1;14510:4:0;;14534:11;;;;;:25;;133:18:1;;14534:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13470:148::-;7561:6;;-1:-1:-1;;;;;7561:6:0;7571:10;7561:20;7553:50;;;;-1:-1:-1;;;7553:50:0;;9456:2:1;7553:50:0;;;9438:21:1;9495:2;9475:18;;;9468:30;-1:-1:-1;;;;;;;;;;;9514:18:1;;;9507:47;9571:18;;7553:50:0;9254:341:1;7553:50:0;-1:-1:-1;;;;;13566:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;13566:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13470:148::o;10117:310::-;-1:-1:-1;;;;;10212:20:0;;10204:52;;;;-1:-1:-1;;;10204:52:0;;24362:2:1;10204:52:0;;;24344:21:1;24401:2;24381:18;;;24374:30;-1:-1:-1;;;24420:18:1;;;24413:49;24479:18;;10204:52:0;24160:343:1;10204:52:0;-1:-1:-1;;;;;10275:21:0;;10267:53;;;;-1:-1:-1;;;10267:53:0;;24362:2:1;10267:53:0;;;24344:21:1;24401:2;24381:18;;;24374:30;-1:-1:-1;;;24420:18:1;;;24413:49;24479:18;;10267:53:0;24160:343:1;10267:53:0;-1:-1:-1;;;;;10333:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10386:33;;391:25:1;;;10386:33:0;;364:18:1;10386:33:0;;;;;;;10117:310;;;:::o;18632:2176::-;18711:4;-1:-1:-1;;;;;18736:18:0;;18728:68;;;;-1:-1:-1;;;18728:68:0;;24710:2:1;18728:68:0;;;24692:21:1;24749:2;24729:18;;;24722:30;24788:34;24768:18;;;24761:62;-1:-1:-1;;;24839:18:1;;;24832:35;24884:19;;18728:68:0;24508:401:1;18728:68:0;-1:-1:-1;;;;;18815:16:0;;18807:64;;;;-1:-1:-1;;;18807:64:0;;25116:2:1;18807:64:0;;;25098:21:1;25155:2;25135:18;;;25128:30;25194:34;25174:18;;;25167:62;-1:-1:-1;;;25245:18:1;;;25238:33;25288:19;;18807:64:0;24914:399:1;18807:64:0;18899:1;18890:6;:10;18882:64;;;;-1:-1:-1;;;18882:64:0;;25520:2:1;18882:64:0;;;25502:21:1;25559:2;25539:18;;;25532:30;25598:34;25578:18;;;25571:62;-1:-1:-1;;;25649:18:1;;;25642:39;25698:19;;18882:64:0;25318:405:1;18882:64:0;-1:-1:-1;;;;;19045:13:0;;18957:8;19045:13;;;:7;:13;;;;;;18957:8;;;;19045:13;;19041:162;;;19081:4;19075:10;;19041:162;;;-1:-1:-1;;;;;19107:11:0;;;;;;:7;:11;;;;;;;;19103:100;;;19142:4;19135:11;;19103:100;;;-1:-1:-1;19187:4:0;19103:100;19217:20;19228:4;19234:2;19217:10;:20::i;:::-;19213:874;;;19258:14;;;;19254:319;;19298:5;19293:265;;19328:34;;-1:-1:-1;;;19328:34:0;;25930:2:1;19328:34:0;;;25912:21:1;25969:2;25949:18;;;25942:30;26008:26;25988:18;;;25981:54;26052:18;;19328:34:0;25728:348:1;19293:265:0;-1:-1:-1;;;;;19393:31:0;;;;;;:25;:31;;;;;;;;19392:32;:66;;;;-1:-1:-1;;;;;;19429:29:0;;;;;;:25;:29;;;;;;;;19428:30;19392:66;19388:170;;;19483:55;;-1:-1:-1;;;19483:55:0;;26283:2:1;19483:55:0;;;26265:21:1;26322:2;26302:18;;;26295:30;26361:34;26341:18;;;26334:62;-1:-1:-1;;;26412:18:1;;;26405:43;26465:19;;19483:55:0;26081:409:1;19388:170:0;19591:3;:11;;;;19598:4;19591:11;19587:232;;;-1:-1:-1;;;;;19627:27:0;;;;;;:21;:27;;;;;;;;19626:28;:58;;;;-1:-1:-1;;;;;;19659:25:0;;;;;;:21;:25;;;;;;;;19658:26;19626:58;19622:182;;;19727:12;;19717:6;:22;;19709:75;;;;-1:-1:-1;;;19709:75:0;;26697:2:1;19709:75:0;;;26679:21:1;26736:2;26716:18;;;26709:30;26775:34;26755:18;;;26748:62;-1:-1:-1;;;26826:18:1;;;26819:38;26874:19;;19709:75:0;26495:404:1;19709:75:0;19851:9;;-1:-1:-1;;;;;19837:24:0;;;19851:9;;;;;19837:24;;;;:33;;;19866:4;19865:5;19837:33;19833:243;;;-1:-1:-1;;;;;19896:25:0;;;;;;:21;:25;;;;;;;;19891:170;;19980:14;;19970:6;19954:13;19964:2;-1:-1:-1;;;;;9743:16:0;9716:7;9743:16;;;;;;;;;;;;9650:117;19954:13;:22;;;;:::i;:::-;:40;;19946:95;;;;-1:-1:-1;;;19946:95:0;;27106:2:1;19946:95:0;;;27088:21:1;27145:2;27125:18;;;27118:30;27184:34;27164:18;;;27157:62;-1:-1:-1;;;27235:18:1;;;27228:40;27285:19;;19946:95:0;26904:406:1;19946:95:0;20103:4;20099:632;;;20129:6;;-1:-1:-1;;;20129:6:0;;;;20124:596;;20160:19;;-1:-1:-1;;;20160:19:0;;;;20156:549;;;20253:4;20204:28;9743:16;;;;;;;;;;;20310:13;;20286:37;;20282:404;;20370:10;;20411:22;;;;20407:97;;;20468:13;;20458:6;;-1:-1:-1;;;;;20458:6:0;9716:7;9743:16;;;;;;;;;;;5589:5;;20448:33;;;:::i;:::-;20447:54;;;;:::i;:::-;20437:64;;20407:97;20558:7;20534:20;:31;20530:72;;20592:7;20569:30;;20530:72;20628:34;20641:20;20628:12;:34::i;:::-;20325:361;20282:404;20181:524;20156:549;20748:52;20765:4;20771:2;20775:6;20783:3;20788:4;20794:5;20748:16;:52::i;:::-;20741:59;18632:2176;-1:-1:-1;;;;;;;18632:2176:0:o;23808:1055::-;23927:4;23948:20;23959:4;23965:2;23948:10;:20::i;:::-;23944:228;;;24003:11;;:39;;-1:-1:-1;;;24003:39:0;;-1:-1:-1;;;;;27596:15:1;;;24003:39:0;;;27578:34:1;27648:15;;;27628:18;;;27621:43;27680:18;;;27673:34;;;23972:12:0;;24003:11;;;;;:21;;27490:18:1;;24003:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24003:39:0;;;;;;;;-1:-1:-1;;24003:39:0;;;;;;;;;;;;:::i;:::-;;;23999:122;;24110:8;;;23999:122;24093:5;-1:-1:-1;24139:7:0;24135:26;;24150:8;;;24135:26;23970:202;23944:228;-1:-1:-1;;;;;24216:25:0;;24182:12;24216:25;;;:19;:25;;;;;;24197:4;;24216:25;;;:52;;-1:-1:-1;;;;;;24245:23:0;;;;;;:19;:23;;;;;;;;24216:52;24212:99;;;-1:-1:-1;24294:5:0;24212:99;-1:-1:-1;;;;;24321:13:0;;:7;:13;;;;;;;;;;:23;;24338:6;;24321:7;:23;;24338:6;;24321:23;:::i;:::-;;;;-1:-1:-1;24355:22:0;;-1:-1:-1;24381:7:0;24380:55;;24429:6;24380:55;;;24392:34;24402:4;24408:6;24416:3;24421:4;24392:9;:34::i;:::-;24355:80;;24461:14;24446:7;:11;24454:2;-1:-1:-1;;;;;24446:11:0;-1:-1:-1;;;;;24446:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;24506:2;-1:-1:-1;;;;;24491:34:0;24500:4;-1:-1:-1;;;;;24491:34:0;;24510:14;24491:34;;;;391:25:1;;379:2;364:18;;245:177;24491:34:0;;;;;;;;24541:16;;;;;;;24536:298;;24574:28;24593:4;24599:2;24574:18;:28::i;:::-;24622:16;;;;;;;24621:17;:41;;;;;24642:20;24653:4;24659:2;24642:10;:20::i;:::-;24621:77;;;;-1:-1:-1;;;;;;24667:31:0;;;;;;:25;:31;;;;;;;;24666:32;24621:77;:111;;;;-1:-1:-1;;;;;;24703:29:0;;;;;;:25;:29;;;;;;;;24702:30;24621:111;:121;;;;;24737:5;24736:6;24621:121;24617:206;;;24763:44;;-1:-1:-1;;;24763:44:0;;27920:2:1;24763:44:0;;;27902:21:1;27959:2;27939:18;;;27932:30;27998:34;27978:18;;;27971:62;-1:-1:-1;;;28049:18:1;;;28042:32;28091:19;;24763:44:0;27718:398:1;24617:206:0;-1:-1:-1;24851:4:0;;23808:1055;-1:-1:-1;;;;;;;;23808:1055:0:o;18178:446::-;18279:6;;18247:4;;-1:-1:-1;;;;;18271:14:0;;;18279:6;;18271:14;;;;:43;;-1:-1:-1;18308:6:0;;-1:-1:-1;;;;;18302:12:0;;;18308:6;;18302:12;;18271:43;:79;;;;-1:-1:-1;18344:6:0;;-1:-1:-1;;;;;18344:6:0;18331:9;:19;;18271:79;:118;;;;-1:-1:-1;;;;;;18368:21:0;;;;;;:17;:21;;;;;;;;18367:22;18271:118;:159;;;;-1:-1:-1;;;;;;18407:23:0;;;;;;:17;:23;;;;;;;;18406:24;18271:159;:186;;;;-1:-1:-1;;;;;;18447:10:0;;5728:42;18447:10;;18271:186;:219;;;;-1:-1:-1;;;;;;18474:16:0;;;;18271:219;:257;;;;-1:-1:-1;;;;;;18507:21:0;;18523:4;18507:21;;18271:257;:302;;;;-1:-1:-1;18561:11:0;;-1:-1:-1;;;;;18545:28:0;;;18561:11;;;;;18545:28;;18271:302;:345;;;;-1:-1:-1;18604:11:0;;-1:-1:-1;;;;;18590:26:0;;;18604:11;;;;;18590:26;;18271:345;18264:352;18178:446;-1:-1:-1;;;18178:446:0:o;20816:761::-;6515:6;:13;;-1:-1:-1;;;;6515:13:0;-1:-1:-1;;;6515:13:0;;;20923:4:::1;6515:13:::0;20903:26;;;:11:::1;:26;::::0;;;;;;;20938:9:::1;::::0;6515:13;20938:9;::::1;-1:-1:-1::0;;;;;20938:9:0::1;20903:46:::0;;;;;;;;-1:-1:-1;;20903:67:0::1;20899:166;;21007:4;20987:26;::::0;;;:11:::1;:26;::::0;;;;;;;21022:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21022:9:0::1;20987:46:::0;;;;;;;-1:-1:-1;;20987:66:0;;20899:166:::1;21109:16;::::0;;21123:1:::1;21109:16:::0;;;;;::::1;::::0;;21085:21:::1;::::0;21109:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21109:16:0::1;21085:40;;21154:4;21136;21141:1;21136:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;21136:23:0::1;;;-1:-1:-1::0;;;;;21136:23:0::1;;;::::0;::::1;21180:9;;;;;;;;;-1:-1:-1::0;;;;;21180:9:0::1;-1:-1:-1::0;;;;;21180:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21170:4;21175:1;21170:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21170:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21213:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;21213:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;21288:20;;21323:1:::1;::::0;21339:4;;21366::::1;::::0;21386:15:::1;::::0;21213:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;21209:246;;21437:7;;;21209:246;21503:15;::::0;:66:::1;::::0;21467:12:::1;::::0;-1:-1:-1;;;;;21503:15:0::1;::::0;21559:5:::1;::::0;21531:21:::1;::::0;21467:12;21503:66;21467:12;21503:66;21531:21;21503:15;21559:5;21503:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6539:1:0::1;-1:-1:-1::0;6551:6:0;:14;;-1:-1:-1;;;;6551:14:0;;;20816:761::o;24871:767::-;24959:7;24979:18;25012:3;25008:205;;;-1:-1:-1;25045:9:0;:16;;;25008:205;;;25083:4;25079:134;;;-1:-1:-1;25117:9:0;:17;;;;;;25079:134;;;-1:-1:-1;25180:9:0;:21;;;;;;25079:134;25227:10;25241:1;25227:15;25223:39;;25253:6;25246:13;;;;;25223:39;25284:11;;;;;-1:-1:-1;;;;;25284:11:0;25308:4;25276:37;:73;;;;;25330:13;25347:2;25330:19;;25276:73;25272:101;;;-1:-1:-1;25366:4:0;25272:101;25383:17;5589:5;25403:19;25412:10;25403:6;:19;:::i;:::-;:38;;;;:::i;:::-;25383:58;-1:-1:-1;25456:13:0;;25452:141;;25502:4;25486:7;:22;;;;;;;;;;:35;;25512:9;;25486:7;:35;;25512:9;;25486:35;:::i;:::-;;;;-1:-1:-1;;25541:40:0;;391:25:1;;;25564:4:0;;-1:-1:-1;;;;;25541:40:0;;;;;379:2:1;364:18;25541:40:0;;;;;;;25452:141;25612:18;25621:9;25612:6;:18;:::i;21585:563::-;21668:16;;;;;;;21667:17;21659:65;;;;-1:-1:-1;;;21659:65:0;;29143:2:1;21659:65:0;;;29125:21:1;29182:2;29162:18;;;29155:30;29221:34;29201:18;;;29194:62;-1:-1:-1;;;29272:18:1;;;29265:33;29315:19;;21659:65:0;28941:399:1;21659:65:0;21740:20;21751:4;21757:2;21740:10;:20::i;:::-;21739:21;:37;;;;-1:-1:-1;21770:6:0;;-1:-1:-1;;;;;21764:12:0;;;21770:6;;21764:12;21739:37;21735:406;;;-1:-1:-1;;;;;21793:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;21793:30:0;;;21819:4;21793:30;;;;;;21838:19;:25;;;;;:32;;;;;;;;;;21885:16;:23;;-1:-1:-1;;21885:23:0;21793:30;21885:23;;;;;21935:11;;;;21923:114;;21981:11;:40;;-1:-1:-1;;;;;;21981:40:0;22015:4;21981:40;;;;;21923:114;22051:19;:26;;-1:-1:-1;;;;22051:26:0;-1:-1:-1;;;22051:26:0;;;22097:32;;-1:-1:-1;4225:41:1;;22097:32:0;;4213:2:1;4198:18;22097:32:0;4085:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;931:127::-;992:10;987:3;983:20;980:1;973:31;1023:4;1020:1;1013:15;1047:4;1044:1;1037:15;1063:275;1134:2;1128:9;1199:2;1180:13;;-1:-1:-1;;1176:27:1;1164:40;;1234:18;1219:34;;1255:22;;;1216:62;1213:88;;;1281:18;;:::i;:::-;1317:2;1310:22;1063:275;;-1:-1:-1;1063:275:1:o;1343:183::-;1403:4;1436:18;1428:6;1425:30;1422:56;;;1458:18;;:::i;:::-;-1:-1:-1;1503:1:1;1499:14;1515:4;1495:25;;1343:183::o;1531:154::-;-1:-1:-1;;;;;1610:5:1;1606:54;1599:5;1596:65;1586:93;;1675:1;1672;1665:12;1690:737;1744:5;1797:3;1790:4;1782:6;1778:17;1774:27;1764:55;;1815:1;1812;1805:12;1764:55;1851:6;1838:20;1877:4;1901:60;1917:43;1957:2;1917:43;:::i;:::-;1901:60;:::i;:::-;1995:15;;;2081:1;2077:10;;;;2065:23;;2061:32;;;2026:12;;;;2105:15;;;2102:35;;;2133:1;2130;2123:12;2102:35;2169:2;2161:6;2157:15;2181:217;2197:6;2192:3;2189:15;2181:217;;;2277:3;2264:17;2294:31;2319:5;2294:31;:::i;:::-;2338:18;;2376:12;;;;2214;;2181:217;;;-1:-1:-1;2416:5:1;1690:737;-1:-1:-1;;;;;;1690:737:1:o;2432:477::-;2522:6;2530;2583:2;2571:9;2562:7;2558:23;2554:32;2551:52;;;2599:1;2596;2589:12;2551:52;2639:9;2626:23;2672:18;2664:6;2661:30;2658:50;;;2704:1;2701;2694:12;2658:50;2727:61;2780:7;2771:6;2760:9;2756:22;2727:61;:::i;:::-;2717:71;;;2838:2;2827:9;2823:18;2810:32;2851:28;2873:5;2851:28;:::i;3284:548::-;3396:4;3425:2;3454;3443:9;3436:21;3486:6;3480:13;3529:6;3524:2;3513:9;3509:18;3502:34;3554:1;3564:140;3578:6;3575:1;3572:13;3564:140;;;3673:14;;;3669:23;;3663:30;3639:17;;;3658:2;3635:26;3628:66;3593:10;;3564:140;;;3568:3;3753:1;3748:2;3739:6;3728:9;3724:22;3720:31;3713:42;3823:2;3816;3812:7;3807:2;3799:6;3795:15;3791:29;3780:9;3776:45;3772:54;3764:62;;;;3284:548;;;;:::o;4277:315::-;4345:6;4353;4406:2;4394:9;4385:7;4381:23;4377:32;4374:52;;;4422:1;4419;4412:12;4374:52;4461:9;4448:23;4480:31;4505:5;4480:31;:::i;:::-;4530:5;4582:2;4567:18;;;;4554:32;;-1:-1:-1;;;4277:315:1:o;4597:247::-;4656:6;4709:2;4697:9;4688:7;4684:23;4680:32;4677:52;;;4725:1;4722;4715:12;4677:52;4764:9;4751:23;4783:31;4808:5;4783:31;:::i;4849:456::-;4926:6;4934;4942;4995:2;4983:9;4974:7;4970:23;4966:32;4963:52;;;5011:1;5008;5001:12;4963:52;5050:9;5037:23;5069:31;5094:5;5069:31;:::i;:::-;5119:5;-1:-1:-1;5176:2:1;5161:18;;5148:32;5189:33;5148:32;5189:33;:::i;:::-;4849:456;;5241:7;;-1:-1:-1;;;5295:2:1;5280:18;;;;5267:32;;4849:456::o;5310:248::-;5378:6;5386;5439:2;5427:9;5418:7;5414:23;5410:32;5407:52;;;5455:1;5452;5445:12;5407:52;-1:-1:-1;;5478:23:1;;;5548:2;5533:18;;;5520:32;;-1:-1:-1;5310:248:1:o;5563:1138::-;5681:6;5689;5742:2;5730:9;5721:7;5717:23;5713:32;5710:52;;;5758:1;5755;5748:12;5710:52;5798:9;5785:23;5827:18;5868:2;5860:6;5857:14;5854:34;;;5884:1;5881;5874:12;5854:34;5907:61;5960:7;5951:6;5940:9;5936:22;5907:61;:::i;:::-;5897:71;;5987:2;5977:12;;6042:2;6031:9;6027:18;6014:32;6071:2;6061:8;6058:16;6055:36;;;6087:1;6084;6077:12;6055:36;6110:24;;;-1:-1:-1;6165:4:1;6157:13;;6153:27;-1:-1:-1;6143:55:1;;6194:1;6191;6184:12;6143:55;6230:2;6217:16;6253:60;6269:43;6309:2;6269:43;:::i;6253:60::-;6347:15;;;6429:1;6425:10;;;;6417:19;;6413:28;;;6378:12;;;;6453:19;;;6450:39;;;6485:1;6482;6475:12;6450:39;6509:11;;;;6529:142;6545:6;6540:3;6537:15;6529:142;;;6611:17;;6599:30;;6562:12;;;;6649;;;;6529:142;;;6690:5;6680:15;;;;;;;5563:1138;;;;;:::o;6895:159::-;6962:20;;7022:6;7011:18;;7001:29;;6991:57;;7044:1;7041;7034:12;6991:57;6895:159;;;:::o;7059:328::-;7133:6;7141;7149;7202:2;7190:9;7181:7;7177:23;7173:32;7170:52;;;7218:1;7215;7208:12;7170:52;7241:28;7259:9;7241:28;:::i;:::-;7231:38;;7288:37;7321:2;7310:9;7306:18;7288:37;:::i;:::-;7278:47;;7344:37;7377:2;7366:9;7362:18;7344:37;:::i;:::-;7334:47;;7059:328;;;;;:::o;7392:382::-;7457:6;7465;7518:2;7506:9;7497:7;7493:23;7489:32;7486:52;;;7534:1;7531;7524:12;7486:52;7573:9;7560:23;7592:31;7617:5;7592:31;:::i;7779:180::-;7838:6;7891:2;7879:9;7870:7;7866:23;7862:32;7859:52;;;7907:1;7904;7897:12;7859:52;-1:-1:-1;7930:23:1;;7779:180;-1:-1:-1;7779:180:1:o;8211:388::-;8279:6;8287;8340:2;8328:9;8319:7;8315:23;8311:32;8308:52;;;8356:1;8353;8346:12;8308:52;8395:9;8382:23;8414:31;8439:5;8414:31;:::i;:::-;8464:5;-1:-1:-1;8521:2:1;8506:18;;8493:32;8534:33;8493:32;8534:33;:::i;8864:385::-;8950:6;8958;8966;8974;9027:3;9015:9;9006:7;9002:23;8998:33;8995:53;;;9044:1;9041;9034:12;8995:53;-1:-1:-1;;9067:23:1;;;9137:2;9122:18;;9109:32;;-1:-1:-1;9188:2:1;9173:18;;9160:32;;9239:2;9224:18;9211:32;;-1:-1:-1;8864:385:1;-1:-1:-1;8864:385:1:o;10219:484::-;10272:3;10310:5;10304:12;10337:6;10332:3;10325:19;10363:4;10392:2;10387:3;10383:12;10376:19;;10429:2;10422:5;10418:14;10450:1;10460:218;10474:6;10471:1;10468:13;10460:218;;;10539:13;;-1:-1:-1;;;;;10535:62:1;10523:75;;10618:12;;;;10653:15;;;;10496:1;10489:9;10460:218;;;-1:-1:-1;10694:3:1;;10219:484;-1:-1:-1;;;;;10219:484:1:o;10708:342::-;10909:2;10898:9;10891:21;10872:4;10929:56;10981:2;10970:9;10966:18;10958:6;10929:56;:::i;:::-;10921:64;;11035:6;11028:14;11021:22;11016:2;11005:9;11001:18;10994:50;10708:342;;;;;:::o;11055:127::-;11116:10;11111:3;11107:20;11104:1;11097:31;11147:4;11144:1;11137:15;11171:4;11168:1;11161:15;11187:422;11276:1;11319:5;11276:1;11333:270;11354:7;11344:8;11341:21;11333:270;;;11413:4;11409:1;11405:6;11401:17;11395:4;11392:27;11389:53;;;11422:18;;:::i;:::-;11472:7;11462:8;11458:22;11455:55;;;11492:16;;;;11455:55;11571:22;;;;11531:15;;;;11333:270;;;11337:3;11187:422;;;;;:::o;11614:806::-;11663:5;11693:8;11683:80;;-1:-1:-1;11734:1:1;11748:5;;11683:80;11782:4;11772:76;;-1:-1:-1;11819:1:1;11833:5;;11772:76;11864:4;11882:1;11877:59;;;;11950:1;11945:130;;;;11857:218;;11877:59;11907:1;11898:10;;11921:5;;;11945:130;11982:3;11972:8;11969:17;11966:43;;;11989:18;;:::i;:::-;-1:-1:-1;;12045:1:1;12031:16;;12060:5;;11857:218;;12159:2;12149:8;12146:16;12140:3;12134:4;12131:13;12127:36;12121:2;12111:8;12108:16;12103:2;12097:4;12094:12;12090:35;12087:77;12084:159;;;-1:-1:-1;12196:19:1;;;12228:5;;12084:159;12275:34;12300:8;12294:4;12275:34;:::i;:::-;12345:6;12341:1;12337:6;12333:19;12324:7;12321:32;12318:58;;;12356:18;;:::i;:::-;12394:20;;11614:806;-1:-1:-1;;;11614:806:1:o;12425:140::-;12483:5;12512:47;12553:4;12543:8;12539:19;12533:4;12512:47;:::i;12570:217::-;12610:1;12636;12626:132;;12680:10;12675:3;12671:20;12668:1;12661:31;12715:4;12712:1;12705:15;12743:4;12740:1;12733:15;12626:132;-1:-1:-1;12772:9:1;;12570:217::o;12792:168::-;12865:9;;;12896;;12913:15;;;12907:22;;12893:37;12883:71;;12934:18;;:::i;12965:128::-;13032:9;;;13053:11;;;13050:37;;;13067:18;;:::i;13865:127::-;13926:10;13921:3;13917:20;13914:1;13907:31;13957:4;13954:1;13947:15;13981:4;13978:1;13971:15;14344:197;14382:3;14410:6;14451:2;14444:5;14440:14;14478:2;14469:7;14466:15;14463:41;;14484:18;;:::i;:::-;14533:1;14520:15;;14344:197;-1:-1:-1;;;14344:197:1:o;14546:125::-;14611:9;;;14632:10;;;14629:36;;;14645:18;;:::i;16922:385::-;17001:6;17009;17062:2;17050:9;17041:7;17037:23;17033:32;17030:52;;;17078:1;17075;17068:12;17030:52;17110:9;17104:16;17129:31;17154:5;17129:31;:::i;:::-;17229:2;17214:18;;17208:25;17179:5;;-1:-1:-1;17242:33:1;17208:25;17242:33;:::i;19936:245::-;20015:6;20023;20076:2;20064:9;20055:7;20051:23;20047:32;20044:52;;;20092:1;20089;20082:12;20044:52;-1:-1:-1;;20115:16:1;;20171:2;20156:18;;;20150:25;20115:16;;20150:25;;-1:-1:-1;19936:245:1:o;20542:184::-;20612:6;20665:2;20653:9;20644:7;20640:23;20636:32;20633:52;;;20681:1;20678;20671:12;20633:52;-1:-1:-1;20704:16:1;;20542:184;-1:-1:-1;20542:184:1:o;21033:245::-;21100:6;21153:2;21141:9;21132:7;21128:23;21124:32;21121:52;;;21169:1;21166;21159:12;21121:52;21201:9;21195:16;21220:28;21242:5;21220:28;:::i;21642:251::-;21712:6;21765:2;21753:9;21744:7;21740:23;21736:32;21733:52;;;21781:1;21778;21771:12;21733:52;21813:9;21807:16;21832:31;21857:5;21832:31;:::i;28121:605::-;28420:6;28409:9;28402:25;28463:6;28458:2;28447:9;28443:18;28436:34;28506:3;28501:2;28490:9;28486:18;28479:31;28383:4;28527:57;28579:3;28568:9;28564:19;28556:6;28527:57;:::i;:::-;-1:-1:-1;;;;;28620:55:1;;;;28615:2;28600:18;;28593:83;-1:-1:-1;28707:3:1;28692:19;28685:35;28519:65;28121:605;-1:-1:-1;;;28121:605:1:o
Swarm Source
ipfs://34f03a2bf6a866d6a6bcc8b2bd0aae2b75c0fe7539b977026e5976ee70c6ccfe
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.