ERC-20
Overview
Max Total Supply
100,000,000,000,000 KINU
Holders
55
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
435,000,000,000 KINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
KinariInu
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-23 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; /* Telegram: https://t.me/KinariInuOfficial Website: Kinariinu.com */ abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the token decimals. */ function decimals() external view returns (uint8); /** * @dev Returns the token symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the token name. */ function name() external view returns (string memory); /** * @dev Returns the bep token owner. */ function getOwner() external view returns (address); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address _owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ 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); } 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 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 AntiSnipe { function checkUser(address from, address to, uint256 amt) external returns (bool); function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function setLpPair(address pair, bool enabled) external; function setProtections(bool _as, bool _ag, bool _ab, bool _algo) external; function setGasPriceLimit(uint256 gas) external; function removeSniper(address account) external; function getSniperAmt() external view returns (uint256); function removeBlacklisted(address account) external; function isBlacklisted(address account) external view returns (bool); } contract KinariInu is Context, IERC20 { // Ownership moved to in-contract for customizability. address private _owner; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; mapping (address => bool) private _liquidityHolders; uint256 constant private startingSupply = 100_000_000_000_000; string constant private _name = "Kinari Inu"; string constant private _symbol = "KINU"; uint8 constant private _decimals = 9; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 development; uint16 marketing; uint16 total; } Fees public _taxRates = Fees({ buyFee: 1300, sellFee: 2800, transferFee: 1300 }); Ratios public _ratios = Ratios({ development: 10, marketing: 3, total: 13 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 2000; uint256 constant masterTaxDivisor = 10000; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable development; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0xA6D62C6AE39B808F3e4E26177895b99bEE9AD49F), development: payable(0xCfBcecb1a55866993c633981d0f326a17722E4db) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public contractSwapTimer = 10 seconds; uint256 private lastSwap; uint256 public swapThreshold = (_tTotal * 5) / 10000; uint256 public swapAmount = (_tTotal * 20) / 10000; uint256 private _maxTxAmount = (_tTotal * 5) / 1000; uint256 private _maxWalletSize = (_tTotal * 1) / 100; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; AntiSnipe antiSnipe; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier lockTheSwap { inSwap = true; _; inSwap = false; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller =/= owner."); _; } constructor () payable { _tOwned[_msgSender()] = _tTotal; // Set the owner. _owner = msg.sender; if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); } else if (block.chainid == 1 || block.chainid == 4) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else { revert(); } lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(msg.sender, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[owner()] = true; emit Transfer(address(0), _msgSender(), _tTotal); } receive() external payable {} //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // 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. function owner() public view returns (address) { return _owner; } 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) { _transfer(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFees(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } 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(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) private { 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() public 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function setNewRouter(address newRouter) public onlyOwner() { IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; antiSnipe.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!"); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; antiSnipe.setLpPair(pair, true); } } function setInitializer(address initializer) external onlyOwner { require(!_hasLiqBeenAdded, "Liquidity is already in."); require(initializer != address(this), "Can't be self."); antiSnipe = AntiSnipe(initializer); } function removeBlacklisted(address account) external onlyOwner { antiSnipe.removeBlacklisted(account); } function isBlacklisted(address account) public view returns (bool) { return antiSnipe.isBlacklisted(account); } function getSniperAmt() public view returns (uint256) { return antiSnipe.getSniperAmt(); } function removeSniper(address account) external onlyOwner { antiSnipe.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiGas, bool _antiBlock, bool _algo) external onlyOwner { antiSnipe.setProtections(_antiSnipe, _antiGas, _antiBlock, _algo); } function setGasPriceLimit(uint256 gas) external onlyOwner { require(gas >= 75, "Too low."); antiSnipe.setGasPriceLimit(gas); } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 development, uint16 marketing) external onlyOwner { _ratios.development = development; _ratios.marketing = marketing; _ratios.total = development + marketing; } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 1000), "Max Transaction amt must be above 0.1% of total supply."); _maxTxAmount = (_tTotal * percent) / divisor; } function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal / 1000), "Max Wallet amt must be above 0.1% of total supply."); _maxWalletSize = (_tTotal * percent) / divisor; } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function isExcludedFromLimits(address account) public view returns (bool) { return _isExcludedFromLimits[account]; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function getMaxTX() public view returns (uint256) { return _maxTxAmount / (10**_decimals); } function getMaxWallet() public view returns (uint256) { return _maxWalletSize / (10**_decimals); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor, uint256 time) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; contractSwapTimer = time; } function setWallets(address payable marketing, address payable development) external onlyOwner { _taxWallets.marketing = payable(marketing); _taxWallets.development = payable(development); } function setContractSwapEnabled(bool _enabled) public onlyOwner { contractSwapEnabled = _enabled; emit ContractSwapEnabledUpdated(_enabled); } function _hasLimits(address from, address to) private view returns (bool) { return from != owner() && to != owner() && tx.origin != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } 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"); if(_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } if(lpPairs[from] || lpPairs[to]){ if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } } if(to != address(dexRouter) && !lpPairs[to]) { if (!_isExcludedFromLimits[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize."); } } } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (lpPairs[to]) { if (!inSwap && contractSwapEnabled ) { if (lastSwap + contractSwapTimer < block.timestamp) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } contractSwap(contractTokenBalance); lastSwap = block.timestamp; } } } } return _finalizeTransfer(from, to, amount, takeFee); } function contractSwap(uint256 contractTokenBalance) private lockTheSwap { Ratios memory ratios = _ratios; if (ratios.total == 0) { return; } 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(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ); uint256 amtBalance = address(this).balance; uint256 developmentBalance = (amtBalance * ratios.development) / ratios.total; uint256 marketingBalance = amtBalance - developmentBalance; if (ratios.development > 0) { _taxWallets.development.transfer(developmentBalance); } if (ratios.marketing > 0) { _taxWallets.marketing.transfer(marketingBalance); } } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _hasLiqBeenAdded = true; if(address(antiSnipe) == address(0)){ antiSnipe = AntiSnipe(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if(address(antiSnipe) == address(0)){ antiSnipe = AntiSnipe(address(this)); } try antiSnipe.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} tradingEnabled = true; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(owner()).transfer(address(this).balance); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external { require(accounts.length == amounts.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]); _transfer(msg.sender, accounts[i], amounts[i]*10**_decimals); } } function multiSendPercents(address[] memory accounts, uint256[] memory percents, uint256[] memory divisors) external { require(accounts.length == percents.length && percents.length == divisors.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= (_tTotal * percents[i]) / divisors[i]); _transfer(msg.sender, accounts[i], (_tTotal * percents[i]) / divisors[i]); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } if (_hasLimits(from, to)) { bool checked; try antiSnipe.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { uint256 currentFee; if (lpPairs[from]) { currentFee = _taxRates.buyFee; } else if (lpPairs[to]) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; _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":"_ratios","outputs":[{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"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":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"contractSwapTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getSniperAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"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":[],"name":"lpPair","outputs":[{"internalType":"address","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":"percents","type":"uint256[]"},{"internalType":"uint256[]","name":"divisors","type":"uint256[]"}],"name":"multiSendPercents","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","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":"bool","name":"_enabled","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":"uint256","name":"gas","type":"uint256"}],"name":"setGasPriceLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","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":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiGas","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"},{"internalType":"bool","name":"_algo","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"setRatios","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"},{"internalType":"uint256","name":"time","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"},{"internalType":"address payable","name":"development","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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
60006004556105146080819052610af060a05260c0526009805465ffffffffffff199081166505140af00514178255600a60e0819052600361010052600d6101208190528154909216640d0003000a17815561018060405273a6d62c6ae39b808f3e4e26177895b99bee9ad49f61014081905273cfbcecb1a55866993c633981d0f326a17722e4db61016081905283546001600160a01b0319908116909217909355600e8054909116909217909155600f805461ff0019169055601081905561271091620000cd91620007de565b620000df90655af3107a4000620007f6565b620000ec906005620007f6565b620000f8919062000818565b6012556127106200010c6009600a620007de565b6200011e90655af3107a4000620007f6565b6200012b906014620007f6565b62000137919062000818565b6013556103e86200014b6009600a620007de565b6200015d90655af3107a4000620007f6565b6200016a906005620007f6565b62000176919062000818565b6014556064620001896009600a620007de565b6200019b90655af3107a4000620007f6565b620001a8906001620007f6565b620001b4919062000818565b6015556016805461ffff19169055620001d06009600a620007de565b620001e290655af3107a4000620007f6565b3360008181526002602052604081209290925581546001600160a01b03191617905546603814156200023a57600b80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620002b7565b46606114156200027057600b80546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c3179055620002b7565b4660011480620002805750466004145b15620002b257600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620002b7565b600080fd5b600b60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033191906200083b565b6001600160a01b031663c9c65396600b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b991906200083b565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200083b565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600360205260409020805460ff19166001179055600b546200047891339116600019620005c8565b600b54620004949030906001600160a01b0316600019620005c8565b600160066000620004ad6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080548316600190811790915561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549093168117909255600890620005356000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620005653390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200059f6009600a620007de565b620005b190655af3107a4000620007f6565b60405190815260200160405180910390a362000866565b6001600160a01b0383166200061a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006685760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000611565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000720578160001904821115620007045762000704620006c9565b808516156200071257918102915b93841c9390800290620006e4565b509250929050565b6000826200073957506001620007d8565b816200074857506000620007d8565b81600181146200076157600281146200076c576200078c565b6001915050620007d8565b60ff841115620007805762000780620006c9565b50506001821b620007d8565b5060208310610133831016604e8410600b8410161715620007b1575081810a620007d8565b620007bd8383620006df565b8060001904821115620007d457620007d4620006c9565b0290505b92915050565b6000620007ef60ff84168362000728565b9392505050565b6000816000190483118215151615620008135762000813620006c9565b500290565b6000826200083657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200084e57600080fd5b81516001600160a01b0381168114620007ef57600080fd5b613f7a80620008766000396000f3fe6080604052600436106103855760003560e01c80635c24b074116101d1578063b1b08f7111610102578063dd62ed3e116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610aa1578063f94aa1b414610ab6578063fdb78c0e14610afd578063fe575a8714610b1c57600080fd5b8063dd62ed3e14610a05578063e4fcfd1814610a4b578063e8a0e3f914610a61578063eafb5a3c14610a8157600080fd5b8063c6a276c2116100dc578063c6a276c214610974578063cab5ebea14610994578063cf847706146109b4578063d3f6a157146109e557600080fd5b8063b1b08f71146105a9578063b3d514fb146105a9578063bcd96a251461095457600080fd5b8063893d20e81161016f5780638da5cb5b116101495780638da5cb5b1461088657806395d89b41146108ce578063a457c2d714610914578063a9059cbb1461093457600080fd5b8063893d20e8146108865780638a63bd9b146108a45780638a8c523c146108b957600080fd5b806370a08231116101ab57806370a0823114610806578063715018a61461083c578063751039fc1461085157806380c581d11461086657600080fd5b80635c24b074146107985780635cce86cd146107b85780636ebd0078146107f157600080fd5b80632e8fa821116102b65780633f3cf56c116102545780634fbee193116102235780634fbee1931461070b57806350a8e0161461074457806355dbc36914610763578063590ffdce1461077857600080fd5b80633f3cf56c14610691578063452ed4f1146106b15780634ada218b146106d15780634fb2e45d146106eb57600080fd5b806333251a0b1161029057806333251a0b1461061157806334cd82601461063157806336fddb0414610651578063395093511461067157600080fd5b80632e8fa821146105bf578063313ce567146105d557806332cde664146105f157600080fd5b80630fa604e41161032357806326003957116102fd57806326003957146105495780632610eaca1461056957806329dd8798146105895780632b28fc7a146105a957600080fd5b80630fa604e4146104ff57806318160ddd1461051457806323b872dd1461052957600080fd5b806306fdde031161035f57806306fdde031461043e5780630758d9241461048d57806309231602146104ad578063095ea7b3146104cf57600080fd5b806303fd2a45146103915780630445b667146103c4578063069d955f146103e857600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a761dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103d057600080fd5b506103da60125481565b6040519081526020016103bb565b3480156103f457600080fd5b506009546104199061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103bb565b34801561044a57600080fd5b5060408051808201909152600a81527f4b696e61726920496e750000000000000000000000000000000000000000000060208201525b6040516103bb919061373c565b34801561049957600080fd5b50600b546103a7906001600160a01b031681565b3480156104b957600080fd5b506104cd6104c8366004613791565b610b3c565b005b3480156104db57600080fd5b506104ef6104ea3660046137bf565b610c60565b60405190151581526020016103bb565b34801561050b57600080fd5b506103da610c77565b34801561052057600080fd5b506103da610c97565b34801561053557600080fd5b506104ef6105443660046137eb565b610cda565b34801561055557600080fd5b506104cd61056436600461382c565b610d52565b34801561057557600080fd5b506104cd6105843660046139a1565b610ea8565b34801561059557600080fd5b506104cd6105a4366004613a13565b610fc2565b3480156105b557600080fd5b506103da6107d081565b3480156105cb57600080fd5b506103da60135481565b3480156105e157600080fd5b50604051600981526020016103bb565b3480156105fd57600080fd5b506104cd61060c366004613a86565b6110ab565b34801561061d57600080fd5b506104cd61062c366004613ac9565b6111e6565b34801561063d57600080fd5b506104cd61064c366004613ae6565b611286565b34801561065d57600080fd5b506104cd61066c366004613b21565b611347565b34801561067d57600080fd5b506104ef61068c3660046137bf565b6113c0565b34801561069d57600080fd5b506104cd6106ac36600461382c565b6113fc565b3480156106bd57600080fd5b50600c546103a7906001600160a01b031681565b3480156106dd57600080fd5b506016546104ef9060ff1681565b3480156106f757600080fd5b506104cd610706366004613ac9565b611552565b34801561071757600080fd5b506104ef610726366004613ac9565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561075057600080fd5b506016546104ef90610100900460ff1681565b34801561076f57600080fd5b506103da61176b565b34801561078457600080fd5b506104cd610793366004613b21565b6117e4565b3480156107a457600080fd5b506104cd6107b3366004613ac9565b61185d565b3480156107c457600080fd5b506104ef6107d3366004613ac9565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107fd57600080fd5b506103da61199c565b34801561081257600080fd5b506103da610821366004613ac9565b6001600160a01b031660009081526002602052604090205490565b34801561084857600080fd5b506104cd6119b7565b34801561085d57600080fd5b506104cd611a72565b34801561087257600080fd5b506104cd610881366004613b21565b611b00565b34801561089257600080fd5b506000546001600160a01b03166103a7565b3480156108b057600080fd5b506104ef611cdd565b3480156108c557600080fd5b506104cd611d4c565b3480156108da57600080fd5b5060408051808201909152600481527f4b494e55000000000000000000000000000000000000000000000000000000006020820152610480565b34801561092057600080fd5b506104ef61092f3660046137bf565b611f36565b34801561094057600080fd5b506104ef61094f3660046137bf565b611f6d565b34801561096057600080fd5b506104cd61096f366004613b5a565b611f84565b34801561098057600080fd5b506104cd61098f366004613ac9565b612056565b3480156109a057600080fd5b506104cd6109af366004613b8d565b6120f6565b3480156109c057600080fd5b50600a546104199061ffff808216916201000081048216916401000000009091041683565b3480156109f157600080fd5b506104cd610a00366004613baa565b612198565b348015610a1157600080fd5b506103da610a20366004613baa565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a5757600080fd5b506103da60105481565b348015610a6d57600080fd5b506104cd610a7c366004613bd8565b61222c565b348015610a8d57600080fd5b506104cd610a9c366004613ac9565b6123c6565b348015610aad57600080fd5b506104cd612796565b348015610ac257600080fd5b50600d54600e54610add916001600160a01b03908116911682565b604080516001600160a01b039384168152929091166020830152016103bb565b348015610b0957600080fd5b50600f546104ef90610100900460ff1681565b348015610b2857600080fd5b506104ef610b37366004613ac9565b612879565b6000546001600160a01b03163314610b8f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b604b811015610be05760405162461bcd60e51b815260206004820152600860248201527f546f6f206c6f772e0000000000000000000000000000000000000000000000006044820152606401610b86565b6016546040517f0923160200000000000000000000000000000000000000000000000000000000815260048101839052620100009091046001600160a01b0316906309231602906024015b600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b5050505050565b6000610c6d338484612907565b5060015b92915050565b6000610c856009600a613d73565b601554610c929190613d82565b905090565b6000610ca56009600a613d73565b610cb590655af3107a4000613dbd565b610cbe57600080fd5b610cca6009600a613d73565b610c9290655af3107a4000613dbd565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610d3f576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610d39908490613ddc565b90915550505b610d4a848484612a14565b949350505050565b6000546001600160a01b03163314610da05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6103e8610daf6009600a613d73565b610dbf90655af3107a4000613dbd565b610dc99190613d82565b8183610dd76009600a613d73565b610de790655af3107a4000613dbd565b610df19190613dbd565b610dfb9190613d82565b1015610e6f5760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e3160448201527f25206f6620746f74616c20737570706c792e00000000000000000000000000006064820152608401610b86565b8082610e7d6009600a613d73565b610e8d90655af3107a4000613dbd565b610e979190613dbd565b610ea19190613d82565b6015555050565b8051825114610ef95760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b86565b60005b82518160ff161015610fbd57818160ff1681518110610f1d57610f1d613df3565b6020026020010151610f44336001600160a01b031660009081526002602052604090205490565b1015610f4f57600080fd5b610faa33848360ff1681518110610f6857610f68613df3565b60200260200101516009600a610f7e9190613d73565b858560ff1681518110610f9357610f93613df3565b6020026020010151610fa59190613dbd565b612a14565b5080610fb581613e22565b915050610efc565b505050565b6000546001600160a01b031633146110105760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517f0109da690000000000000000000000000000000000000000000000000000000081528515156004820152841515602482015283151560448201528215156064820152620100009091046001600160a01b031690630109da6990608401600060405180830381600087803b15801561108d57600080fd5b505af11580156110a1573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146110f95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6107d08361ffff161115801561111557506107d08261ffff1611155b801561112757506107d08161ffff1611155b6111735760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b86565b6009805461ffff9485167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909116176201000093851693909302929092177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff166401000000009190931602919091179055565b6000546001600160a01b031633146112345760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b90602401610c2b565b6000546001600160a01b031633146112d45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b83856112e26009600a613d73565b6112f290655af3107a4000613dbd565b6112fc9190613dbd565b6113069190613d82565b60125581836113176009600a613d73565b61132790655af3107a4000613dbd565b6113319190613dbd565b61133b9190613d82565b60135560105550505050565b6000546001600160a01b031633146113955760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c6d9185906113f7908690613e42565b612907565b6000546001600160a01b0316331461144a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6103e86114596009600a613d73565b61146990655af3107a4000613dbd565b6114739190613d82565b81836114816009600a613d73565b61149190655af3107a4000613dbd565b61149b9190613dbd565b6114a59190613d82565b10156115195760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b86565b80826115276009600a613d73565b61153790655af3107a4000613dbd565b6115419190613dbd565b61154b9190613d82565b6014555050565b6000546001600160a01b031633146115a05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03811661161c5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b86565b6001600160a01b03811661dead141561169d5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b86565b600080546116b6916001600160a01b03909116906117e4565b6116c18160016117e4565b600080546001600160a01b03168152600260205260409020541561170857600080546001600160a01b0316808252600260205260409091205461170691908390612a14565b505b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000601660029054906101000a90046001600160a01b03166001600160a01b03166355dbc3696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c929190613e5a565b6000546001600160a01b031633146118325760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118ab5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b601654610100900460ff16156119035760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610b86565b6001600160a01b03811630141561195c5760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b86565b601680546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b60006119aa6009600a613d73565b601454610c929190613d82565b6000546001600160a01b03163314611a055760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60008054611a1e916001600160a01b03909116906117e4565b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611ac05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b611acc6009600a613d73565b611adc90655af3107a4000613dbd565b601455611aeb6009600a613d73565b611afb90655af3107a4000613dbd565b601555565b6000546001600160a01b03163314611b4e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b80611bf7576001600160a01b03828116600081815260036020526040808220805460ff1916905560165490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050505050565b60045415611c5e576203f48060045442611c119190613ddc565b11611c5e5760405162461bcd60e51b815260206004820152601060248201527f332044617920636f6f6c646f776e2e21000000000000000000000000000000006044820152606401610b86565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560165492517f80c581d1000000000000000000000000000000000000000000000000000000008152908101939093526024830152620100009004909116906380c581d190604401611bc1565b5050565b600080546001600160a01b03163314611d2c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600b54611d469030906001600160a01b0316600019612907565b50600190565b6000546001600160a01b03163314611d9a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60165460ff1615611ded5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b86565b601654610100900460ff16611e445760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b86565b6016546201000090046001600160a01b0316611e8a57601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601654600c546040517f6c115c340000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611f1557600080fd5b505af1925050508015611f26575060015b506016805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c6d9185906113f7908690613ddc565b6000611f7a338484612a14565b5060019392505050565b6000546001600160a01b03163314611fd25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600a805461ffff83811662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216908516171790556120168183613e73565b600a805461ffff92909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff9092169190911790555050565b6000546001600160a01b031633146120a45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c290602401610c2b565b6000546001600160a01b031633146121445760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600f80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061218d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146121e65760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600d80546001600160a01b039384167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155600e8054929093169116179055565b8151835114801561223e575080518251145b61228a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b86565b60005b83518160ff1610156123c057818160ff16815181106122ae576122ae613df3565b6020026020010151838260ff16815181106122cb576122cb613df3565b60200260200101516009600a6122e19190613d73565b6122f190655af3107a4000613dbd565b6122fb9190613dbd565b6123059190613d82565b33600090815260026020526040902054101561232057600080fd5b6123ad33858360ff168151811061233957612339613df3565b6020026020010151848460ff168151811061235657612356613df3565b6020026020010151868560ff168151811061237357612373613df3565b60200260200101516009600a6123899190613d73565b61239990655af3107a4000613dbd565b6123a39190613dbd565b610fa59190613d82565b50806123b881613e22565b91505061228d565b50505050565b6000546001600160a01b031633146124145760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247d9190613e99565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ee9190613e99565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125759190613e99565b90506001600160a01b03811661271e57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e79190613e99565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126589190613e99565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e19190613e99565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055612752565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416908117909155610fbd903090600019612907565b6000546001600160a01b031633146127e45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b601654610100900460ff161561283c5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b86565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015612876573d6000803e3d6000fd5b50565b6016546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190613eb6565b6001600160a01b03831661295d5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b86565b6001600160a01b0382166129b35760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b86565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612a925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b86565b6001600160a01b038316612b0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b86565b60008211612b845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b86565b612b8e8484612ed3565b15612de55760165460ff16612be55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b86565b6001600160a01b03841660009081526003602052604090205460ff1680612c2457506001600160a01b03831660009081526003602052604090205460ff165b15612ce8576001600160a01b03841660009081526007602052604090205460ff16158015612c6b57506001600160a01b03831660009081526007602052604090205460ff16155b15612ce857601454821115612ce85760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b86565b600b546001600160a01b03848116911614801590612d1f57506001600160a01b03831660009081526003602052604090205460ff16155b15612de5576001600160a01b03831660009081526007602052604090205460ff16612de55760155482612d67856001600160a01b031660009081526002602052604090205490565b612d719190613e42565b1115612de55760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b86565b6001600160a01b03841660009081526006602052604090205460019060ff1680612e2757506001600160a01b03841660009081526006602052604090205460ff165b15612e30575060005b6001600160a01b03841660009081526003602052604090205460ff1615612ebe57600f5460ff16158015612e6b5750600f54610100900460ff165b15612ebe5742601054601154612e819190613e42565b1015612ebe57306000908152600260205260409020546012548110612ebc576013548110612eae57506013545b612eb781612fa8565b426011555b505b612eca85858584613297565b95945050505050565b600080546001600160a01b03848116911614801590612f0057506000546001600160a01b03838116911614155b8015612f1757506000546001600160a01b03163214155b8015612f3c57506001600160a01b03821660009081526008602052604090205460ff16155b8015612f6157506001600160a01b03831660009081526008602052604090205460ff16155b8015612f7857506001600160a01b03821661dead14155b8015612f8c57506001600160a01b03821615155b8015612fa157506001600160a01b0383163014155b9392505050565b600f805460ff1916600117905560408051606081018252600a5461ffff8082168352620100008204811660208401526401000000009091041691810182905290612ff2575061328a565b306000908152600560209081526040808320600b546001600160a01b031684529091529020546000191461304b57306000908152600560209081526040808320600b546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061308057613080613df3565b6001600160a01b03928316602091820292909201810191909152600b54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156130f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131169190613e99565b8160018151811061312957613129613df3565b6001600160a01b039283166020918202929092010152600b546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790613188908690600090869030904290600401613ed3565b600060405180830381600087803b1580156131a257600080fd5b505af11580156131b6573d6000803e3d6000fd5b5050506040830151835147925060009161ffff908116916131d8911684613dbd565b6131e29190613d82565b905060006131f08284613ddc565b855190915061ffff161561323a57600e546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613238573d6000803e3d6000fd5b505b602085015161ffff161561328457600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613282573d6000803e3d6000fd5b505b50505050505b50600f805460ff19169055565b601654600090610100900460ff16613343576132b385856134d3565b601654610100900460ff161580156132d057506132d08585612ed3565b156133435760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b86565b61334d8585612ed3565b15613400576016546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152868116602483015260448201869052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156133e9575060408051601f3d908101601f191682019092526133e691810190613eb6565b60015b6133f257600080fd5b9050806133fe57600080fd5b505b6001600160a01b03851660009081526002602052604081208054859290613428908490613ddc565b90915550600090508261343b5783613446565b613446868686613631565b6001600160a01b038616600090815260026020526040812080549293508392909190613473908490613e42565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134bf91815260200190565b60405180910390a350600195945050505050565b601654610100900460ff16156135515760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b86565b61355b8282612ed3565b1580156135755750600c546001600160a01b038281169116145b15611cd9576001600160a01b038083166000908152600860205260409020805460ff191660011790556016805461ff0019166101001790819055620100009004166135ea57601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6001600160a01b038316600090815260036020526040812054819060ff1615613661575060095461ffff166136a6565b6001600160a01b03841660009081526003602052604090205460ff1615613695575060095462010000900461ffff166136a6565b50600954640100000000900461ffff165b60006127106136b58386613dbd565b6136bf9190613d82565b306000908152600260205260408120805492935083929091906136e3908490613e42565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36137328185613ddc565b9695505050505050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b8181111561377b576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156137a357600080fd5b5035919050565b6001600160a01b038116811461287657600080fd5b600080604083850312156137d257600080fd5b82356137dd816137aa565b946020939093013593505050565b60008060006060848603121561380057600080fd5b833561380b816137aa565b9250602084013561381b816137aa565b929592945050506040919091013590565b6000806040838503121561383f57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156138a6576138a661384e565b604052919050565b600067ffffffffffffffff8211156138c8576138c861384e565b5060051b60200190565b600082601f8301126138e357600080fd5b813560206138f86138f3836138ae565b61387d565b82815260059290921b8401810191818101908684111561391757600080fd5b8286015b8481101561393b57803561392e816137aa565b835291830191830161391b565b509695505050505050565b600082601f83011261395757600080fd5b813560206139676138f3836138ae565b82815260059290921b8401810191818101908684111561398657600080fd5b8286015b8481101561393b578035835291830191830161398a565b600080604083850312156139b457600080fd5b823567ffffffffffffffff808211156139cc57600080fd5b6139d8868387016138d2565b935060208501359150808211156139ee57600080fd5b506139fb85828601613946565b9150509250929050565b801515811461287657600080fd5b60008060008060808587031215613a2957600080fd5b8435613a3481613a05565b93506020850135613a4481613a05565b92506040850135613a5481613a05565b91506060850135613a6481613a05565b939692955090935050565b803561ffff81168114613a8157600080fd5b919050565b600080600060608486031215613a9b57600080fd5b613aa484613a6f565b9250613ab260208501613a6f565b9150613ac060408501613a6f565b90509250925092565b600060208284031215613adb57600080fd5b8135612fa1816137aa565b600080600080600060a08688031215613afe57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215613b3457600080fd5b8235613b3f816137aa565b91506020830135613b4f81613a05565b809150509250929050565b60008060408385031215613b6d57600080fd5b613b7683613a6f565b9150613b8460208401613a6f565b90509250929050565b600060208284031215613b9f57600080fd5b8135612fa181613a05565b60008060408385031215613bbd57600080fd5b8235613bc8816137aa565b91506020830135613b4f816137aa565b600080600060608486031215613bed57600080fd5b833567ffffffffffffffff80821115613c0557600080fd5b613c11878388016138d2565b94506020860135915080821115613c2757600080fd5b613c3387838801613946565b93506040860135915080821115613c4957600080fd5b50613c5686828701613946565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115613cca578160001904821115613cb057613cb0613c60565b80851615613cbd57918102915b93841c9390800290613c94565b509250929050565b600082613ce157506001610c71565b81613cee57506000610c71565b8160018114613d045760028114613d0e57613d2a565b6001915050610c71565b60ff841115613d1f57613d1f613c60565b50506001821b610c71565b5060208310610133831016604e8410600b8410161715613d4d575081810a610c71565b613d578383613c8f565b8060001904821115613d6b57613d6b613c60565b029392505050565b6000612fa160ff841683613cd2565b600082613db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000816000190483118215151615613dd757613dd7613c60565b500290565b600082821015613dee57613dee613c60565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff821660ff811415613e3957613e39613c60565b60010192915050565b60008219821115613e5557613e55613c60565b500190565b600060208284031215613e6c57600080fd5b5051919050565b600061ffff808316818516808303821115613e9057613e90613c60565b01949350505050565b600060208284031215613eab57600080fd5b8151612fa1816137aa565b600060208284031215613ec857600080fd5b8151612fa181613a05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613f235784516001600160a01b031683529383019391830191600101613efe565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c0c40bfee5405c4ce3896d00b1d109740ea49cc50e24d90ab47ad3ce01a7719264736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106103855760003560e01c80635c24b074116101d1578063b1b08f7111610102578063dd62ed3e116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610aa1578063f94aa1b414610ab6578063fdb78c0e14610afd578063fe575a8714610b1c57600080fd5b8063dd62ed3e14610a05578063e4fcfd1814610a4b578063e8a0e3f914610a61578063eafb5a3c14610a8157600080fd5b8063c6a276c2116100dc578063c6a276c214610974578063cab5ebea14610994578063cf847706146109b4578063d3f6a157146109e557600080fd5b8063b1b08f71146105a9578063b3d514fb146105a9578063bcd96a251461095457600080fd5b8063893d20e81161016f5780638da5cb5b116101495780638da5cb5b1461088657806395d89b41146108ce578063a457c2d714610914578063a9059cbb1461093457600080fd5b8063893d20e8146108865780638a63bd9b146108a45780638a8c523c146108b957600080fd5b806370a08231116101ab57806370a0823114610806578063715018a61461083c578063751039fc1461085157806380c581d11461086657600080fd5b80635c24b074146107985780635cce86cd146107b85780636ebd0078146107f157600080fd5b80632e8fa821116102b65780633f3cf56c116102545780634fbee193116102235780634fbee1931461070b57806350a8e0161461074457806355dbc36914610763578063590ffdce1461077857600080fd5b80633f3cf56c14610691578063452ed4f1146106b15780634ada218b146106d15780634fb2e45d146106eb57600080fd5b806333251a0b1161029057806333251a0b1461061157806334cd82601461063157806336fddb0414610651578063395093511461067157600080fd5b80632e8fa821146105bf578063313ce567146105d557806332cde664146105f157600080fd5b80630fa604e41161032357806326003957116102fd57806326003957146105495780632610eaca1461056957806329dd8798146105895780632b28fc7a146105a957600080fd5b80630fa604e4146104ff57806318160ddd1461051457806323b872dd1461052957600080fd5b806306fdde031161035f57806306fdde031461043e5780630758d9241461048d57806309231602146104ad578063095ea7b3146104cf57600080fd5b806303fd2a45146103915780630445b667146103c4578063069d955f146103e857600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a761dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103d057600080fd5b506103da60125481565b6040519081526020016103bb565b3480156103f457600080fd5b506009546104199061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103bb565b34801561044a57600080fd5b5060408051808201909152600a81527f4b696e61726920496e750000000000000000000000000000000000000000000060208201525b6040516103bb919061373c565b34801561049957600080fd5b50600b546103a7906001600160a01b031681565b3480156104b957600080fd5b506104cd6104c8366004613791565b610b3c565b005b3480156104db57600080fd5b506104ef6104ea3660046137bf565b610c60565b60405190151581526020016103bb565b34801561050b57600080fd5b506103da610c77565b34801561052057600080fd5b506103da610c97565b34801561053557600080fd5b506104ef6105443660046137eb565b610cda565b34801561055557600080fd5b506104cd61056436600461382c565b610d52565b34801561057557600080fd5b506104cd6105843660046139a1565b610ea8565b34801561059557600080fd5b506104cd6105a4366004613a13565b610fc2565b3480156105b557600080fd5b506103da6107d081565b3480156105cb57600080fd5b506103da60135481565b3480156105e157600080fd5b50604051600981526020016103bb565b3480156105fd57600080fd5b506104cd61060c366004613a86565b6110ab565b34801561061d57600080fd5b506104cd61062c366004613ac9565b6111e6565b34801561063d57600080fd5b506104cd61064c366004613ae6565b611286565b34801561065d57600080fd5b506104cd61066c366004613b21565b611347565b34801561067d57600080fd5b506104ef61068c3660046137bf565b6113c0565b34801561069d57600080fd5b506104cd6106ac36600461382c565b6113fc565b3480156106bd57600080fd5b50600c546103a7906001600160a01b031681565b3480156106dd57600080fd5b506016546104ef9060ff1681565b3480156106f757600080fd5b506104cd610706366004613ac9565b611552565b34801561071757600080fd5b506104ef610726366004613ac9565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561075057600080fd5b506016546104ef90610100900460ff1681565b34801561076f57600080fd5b506103da61176b565b34801561078457600080fd5b506104cd610793366004613b21565b6117e4565b3480156107a457600080fd5b506104cd6107b3366004613ac9565b61185d565b3480156107c457600080fd5b506104ef6107d3366004613ac9565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107fd57600080fd5b506103da61199c565b34801561081257600080fd5b506103da610821366004613ac9565b6001600160a01b031660009081526002602052604090205490565b34801561084857600080fd5b506104cd6119b7565b34801561085d57600080fd5b506104cd611a72565b34801561087257600080fd5b506104cd610881366004613b21565b611b00565b34801561089257600080fd5b506000546001600160a01b03166103a7565b3480156108b057600080fd5b506104ef611cdd565b3480156108c557600080fd5b506104cd611d4c565b3480156108da57600080fd5b5060408051808201909152600481527f4b494e55000000000000000000000000000000000000000000000000000000006020820152610480565b34801561092057600080fd5b506104ef61092f3660046137bf565b611f36565b34801561094057600080fd5b506104ef61094f3660046137bf565b611f6d565b34801561096057600080fd5b506104cd61096f366004613b5a565b611f84565b34801561098057600080fd5b506104cd61098f366004613ac9565b612056565b3480156109a057600080fd5b506104cd6109af366004613b8d565b6120f6565b3480156109c057600080fd5b50600a546104199061ffff808216916201000081048216916401000000009091041683565b3480156109f157600080fd5b506104cd610a00366004613baa565b612198565b348015610a1157600080fd5b506103da610a20366004613baa565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a5757600080fd5b506103da60105481565b348015610a6d57600080fd5b506104cd610a7c366004613bd8565b61222c565b348015610a8d57600080fd5b506104cd610a9c366004613ac9565b6123c6565b348015610aad57600080fd5b506104cd612796565b348015610ac257600080fd5b50600d54600e54610add916001600160a01b03908116911682565b604080516001600160a01b039384168152929091166020830152016103bb565b348015610b0957600080fd5b50600f546104ef90610100900460ff1681565b348015610b2857600080fd5b506104ef610b37366004613ac9565b612879565b6000546001600160a01b03163314610b8f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b604b811015610be05760405162461bcd60e51b815260206004820152600860248201527f546f6f206c6f772e0000000000000000000000000000000000000000000000006044820152606401610b86565b6016546040517f0923160200000000000000000000000000000000000000000000000000000000815260048101839052620100009091046001600160a01b0316906309231602906024015b600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b5050505050565b6000610c6d338484612907565b5060015b92915050565b6000610c856009600a613d73565b601554610c929190613d82565b905090565b6000610ca56009600a613d73565b610cb590655af3107a4000613dbd565b610cbe57600080fd5b610cca6009600a613d73565b610c9290655af3107a4000613dbd565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610d3f576001600160a01b038416600090815260056020908152604080832033845290915281208054849290610d39908490613ddc565b90915550505b610d4a848484612a14565b949350505050565b6000546001600160a01b03163314610da05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6103e8610daf6009600a613d73565b610dbf90655af3107a4000613dbd565b610dc99190613d82565b8183610dd76009600a613d73565b610de790655af3107a4000613dbd565b610df19190613dbd565b610dfb9190613d82565b1015610e6f5760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e3160448201527f25206f6620746f74616c20737570706c792e00000000000000000000000000006064820152608401610b86565b8082610e7d6009600a613d73565b610e8d90655af3107a4000613dbd565b610e979190613dbd565b610ea19190613d82565b6015555050565b8051825114610ef95760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b86565b60005b82518160ff161015610fbd57818160ff1681518110610f1d57610f1d613df3565b6020026020010151610f44336001600160a01b031660009081526002602052604090205490565b1015610f4f57600080fd5b610faa33848360ff1681518110610f6857610f68613df3565b60200260200101516009600a610f7e9190613d73565b858560ff1681518110610f9357610f93613df3565b6020026020010151610fa59190613dbd565b612a14565b5080610fb581613e22565b915050610efc565b505050565b6000546001600160a01b031633146110105760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517f0109da690000000000000000000000000000000000000000000000000000000081528515156004820152841515602482015283151560448201528215156064820152620100009091046001600160a01b031690630109da6990608401600060405180830381600087803b15801561108d57600080fd5b505af11580156110a1573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146110f95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6107d08361ffff161115801561111557506107d08261ffff1611155b801561112757506107d08161ffff1611155b6111735760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b86565b6009805461ffff9485167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909116176201000093851693909302929092177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff166401000000009190931602919091179055565b6000546001600160a01b031633146112345760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517f33251a0b0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015262010000909204909116906333251a0b90602401610c2b565b6000546001600160a01b031633146112d45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b83856112e26009600a613d73565b6112f290655af3107a4000613dbd565b6112fc9190613dbd565b6113069190613d82565b60125581836113176009600a613d73565b61132790655af3107a4000613dbd565b6113319190613dbd565b61133b9190613d82565b60135560105550505050565b6000546001600160a01b031633146113955760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c6d9185906113f7908690613e42565b612907565b6000546001600160a01b0316331461144a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6103e86114596009600a613d73565b61146990655af3107a4000613dbd565b6114739190613d82565b81836114816009600a613d73565b61149190655af3107a4000613dbd565b61149b9190613dbd565b6114a59190613d82565b10156115195760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b86565b80826115276009600a613d73565b61153790655af3107a4000613dbd565b6115419190613dbd565b61154b9190613d82565b6014555050565b6000546001600160a01b031633146115a05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03811661161c5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b86565b6001600160a01b03811661dead141561169d5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b86565b600080546116b6916001600160a01b03909116906117e4565b6116c18160016117e4565b600080546001600160a01b03168152600260205260409020541561170857600080546001600160a01b0316808252600260205260409091205461170691908390612a14565b505b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000601660029054906101000a90046001600160a01b03166001600160a01b03166355dbc3696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c929190613e5a565b6000546001600160a01b031633146118325760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118ab5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b601654610100900460ff16156119035760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610b86565b6001600160a01b03811630141561195c5760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b86565b601680546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b60006119aa6009600a613d73565b601454610c929190613d82565b6000546001600160a01b03163314611a055760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60008054611a1e916001600160a01b03909116906117e4565b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611ac05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b611acc6009600a613d73565b611adc90655af3107a4000613dbd565b601455611aeb6009600a613d73565b611afb90655af3107a4000613dbd565b601555565b6000546001600160a01b03163314611b4e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b80611bf7576001600160a01b03828116600081815260036020526040808220805460ff1916905560165490517f80c581d100000000000000000000000000000000000000000000000000000000815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050505050565b60045415611c5e576203f48060045442611c119190613ddc565b11611c5e5760405162461bcd60e51b815260206004820152601060248201527f332044617920636f6f6c646f776e2e21000000000000000000000000000000006044820152606401610b86565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560165492517f80c581d1000000000000000000000000000000000000000000000000000000008152908101939093526024830152620100009004909116906380c581d190604401611bc1565b5050565b600080546001600160a01b03163314611d2c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600b54611d469030906001600160a01b0316600019612907565b50600190565b6000546001600160a01b03163314611d9a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60165460ff1615611ded5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b86565b601654610100900460ff16611e445760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b86565b6016546201000090046001600160a01b0316611e8a57601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b601654600c546040517f6c115c340000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611f1557600080fd5b505af1925050508015611f26575060015b506016805460ff19166001179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c6d9185906113f7908690613ddc565b6000611f7a338484612a14565b5060019392505050565b6000546001600160a01b03163314611fd25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600a805461ffff83811662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216908516171790556120168183613e73565b600a805461ffff92909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff9092169190911790555050565b6000546001600160a01b031633146120a45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b6016546040517fc6a276c20000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152620100009092049091169063c6a276c290602401610c2b565b6000546001600160a01b031633146121445760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600f80548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579061218d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146121e65760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b600d80546001600160a01b039384167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155600e8054929093169116179055565b8151835114801561223e575080518251145b61228a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b86565b60005b83518160ff1610156123c057818160ff16815181106122ae576122ae613df3565b6020026020010151838260ff16815181106122cb576122cb613df3565b60200260200101516009600a6122e19190613d73565b6122f190655af3107a4000613dbd565b6122fb9190613dbd565b6123059190613d82565b33600090815260026020526040902054101561232057600080fd5b6123ad33858360ff168151811061233957612339613df3565b6020026020010151848460ff168151811061235657612356613df3565b6020026020010151868560ff168151811061237357612373613df3565b60200260200101516009600a6123899190613d73565b61239990655af3107a4000613dbd565b6123a39190613dbd565b610fa59190613d82565b50806123b881613e22565b91505061228d565b50505050565b6000546001600160a01b031633146124145760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247d9190613e99565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ee9190613e99565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125759190613e99565b90506001600160a01b03811661271e57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e79190613e99565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126589190613e99565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e19190613e99565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055612752565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416908117909155610fbd903090600019612907565b6000546001600160a01b031633146127e45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610b86565b601654610100900460ff161561283c5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b86565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015612876573d6000803e3d6000fd5b50565b6016546040517ffe575a870000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190613eb6565b6001600160a01b03831661295d5760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b86565b6001600160a01b0382166129b35760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610b86565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612a925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b86565b6001600160a01b038316612b0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b86565b60008211612b845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610b86565b612b8e8484612ed3565b15612de55760165460ff16612be55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b86565b6001600160a01b03841660009081526003602052604090205460ff1680612c2457506001600160a01b03831660009081526003602052604090205460ff165b15612ce8576001600160a01b03841660009081526007602052604090205460ff16158015612c6b57506001600160a01b03831660009081526007602052604090205460ff16155b15612ce857601454821115612ce85760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610b86565b600b546001600160a01b03848116911614801590612d1f57506001600160a01b03831660009081526003602052604090205460ff16155b15612de5576001600160a01b03831660009081526007602052604090205460ff16612de55760155482612d67856001600160a01b031660009081526002602052604090205490565b612d719190613e42565b1115612de55760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201527f616c6c657453697a652e000000000000000000000000000000000000000000006064820152608401610b86565b6001600160a01b03841660009081526006602052604090205460019060ff1680612e2757506001600160a01b03841660009081526006602052604090205460ff165b15612e30575060005b6001600160a01b03841660009081526003602052604090205460ff1615612ebe57600f5460ff16158015612e6b5750600f54610100900460ff165b15612ebe5742601054601154612e819190613e42565b1015612ebe57306000908152600260205260409020546012548110612ebc576013548110612eae57506013545b612eb781612fa8565b426011555b505b612eca85858584613297565b95945050505050565b600080546001600160a01b03848116911614801590612f0057506000546001600160a01b03838116911614155b8015612f1757506000546001600160a01b03163214155b8015612f3c57506001600160a01b03821660009081526008602052604090205460ff16155b8015612f6157506001600160a01b03831660009081526008602052604090205460ff16155b8015612f7857506001600160a01b03821661dead14155b8015612f8c57506001600160a01b03821615155b8015612fa157506001600160a01b0383163014155b9392505050565b600f805460ff1916600117905560408051606081018252600a5461ffff8082168352620100008204811660208401526401000000009091041691810182905290612ff2575061328a565b306000908152600560209081526040808320600b546001600160a01b031684529091529020546000191461304b57306000908152600560209081526040808320600b546001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061308057613080613df3565b6001600160a01b03928316602091820292909201810191909152600b54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156130f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131169190613e99565b8160018151811061312957613129613df3565b6001600160a01b039283166020918202929092010152600b546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790613188908690600090869030904290600401613ed3565b600060405180830381600087803b1580156131a257600080fd5b505af11580156131b6573d6000803e3d6000fd5b5050506040830151835147925060009161ffff908116916131d8911684613dbd565b6131e29190613d82565b905060006131f08284613ddc565b855190915061ffff161561323a57600e546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613238573d6000803e3d6000fd5b505b602085015161ffff161561328457600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613282573d6000803e3d6000fd5b505b50505050505b50600f805460ff19169055565b601654600090610100900460ff16613343576132b385856134d3565b601654610100900460ff161580156132d057506132d08585612ed3565b156133435760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610b86565b61334d8585612ed3565b15613400576016546040517fecd07a530000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152868116602483015260448201869052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156133e9575060408051601f3d908101601f191682019092526133e691810190613eb6565b60015b6133f257600080fd5b9050806133fe57600080fd5b505b6001600160a01b03851660009081526002602052604081208054859290613428908490613ddc565b90915550600090508261343b5783613446565b613446868686613631565b6001600160a01b038616600090815260026020526040812080549293508392909190613473908490613e42565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134bf91815260200190565b60405180910390a350600195945050505050565b601654610100900460ff16156135515760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610b86565b61355b8282612ed3565b1580156135755750600c546001600160a01b038281169116145b15611cd9576001600160a01b038083166000908152600860205260409020805460ff191660011790556016805461ff0019166101001790819055620100009004166135ea57601680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6001600160a01b038316600090815260036020526040812054819060ff1615613661575060095461ffff166136a6565b6001600160a01b03841660009081526003602052604090205460ff1615613695575060095462010000900461ffff166136a6565b50600954640100000000900461ffff165b60006127106136b58386613dbd565b6136bf9190613d82565b306000908152600260205260408120805492935083929091906136e3908490613e42565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36137328185613ddc565b9695505050505050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b8181111561377b576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156137a357600080fd5b5035919050565b6001600160a01b038116811461287657600080fd5b600080604083850312156137d257600080fd5b82356137dd816137aa565b946020939093013593505050565b60008060006060848603121561380057600080fd5b833561380b816137aa565b9250602084013561381b816137aa565b929592945050506040919091013590565b6000806040838503121561383f57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156138a6576138a661384e565b604052919050565b600067ffffffffffffffff8211156138c8576138c861384e565b5060051b60200190565b600082601f8301126138e357600080fd5b813560206138f86138f3836138ae565b61387d565b82815260059290921b8401810191818101908684111561391757600080fd5b8286015b8481101561393b57803561392e816137aa565b835291830191830161391b565b509695505050505050565b600082601f83011261395757600080fd5b813560206139676138f3836138ae565b82815260059290921b8401810191818101908684111561398657600080fd5b8286015b8481101561393b578035835291830191830161398a565b600080604083850312156139b457600080fd5b823567ffffffffffffffff808211156139cc57600080fd5b6139d8868387016138d2565b935060208501359150808211156139ee57600080fd5b506139fb85828601613946565b9150509250929050565b801515811461287657600080fd5b60008060008060808587031215613a2957600080fd5b8435613a3481613a05565b93506020850135613a4481613a05565b92506040850135613a5481613a05565b91506060850135613a6481613a05565b939692955090935050565b803561ffff81168114613a8157600080fd5b919050565b600080600060608486031215613a9b57600080fd5b613aa484613a6f565b9250613ab260208501613a6f565b9150613ac060408501613a6f565b90509250925092565b600060208284031215613adb57600080fd5b8135612fa1816137aa565b600080600080600060a08688031215613afe57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215613b3457600080fd5b8235613b3f816137aa565b91506020830135613b4f81613a05565b809150509250929050565b60008060408385031215613b6d57600080fd5b613b7683613a6f565b9150613b8460208401613a6f565b90509250929050565b600060208284031215613b9f57600080fd5b8135612fa181613a05565b60008060408385031215613bbd57600080fd5b8235613bc8816137aa565b91506020830135613b4f816137aa565b600080600060608486031215613bed57600080fd5b833567ffffffffffffffff80821115613c0557600080fd5b613c11878388016138d2565b94506020860135915080821115613c2757600080fd5b613c3387838801613946565b93506040860135915080821115613c4957600080fd5b50613c5686828701613946565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115613cca578160001904821115613cb057613cb0613c60565b80851615613cbd57918102915b93841c9390800290613c94565b509250929050565b600082613ce157506001610c71565b81613cee57506000610c71565b8160018114613d045760028114613d0e57613d2a565b6001915050610c71565b60ff841115613d1f57613d1f613c60565b50506001821b610c71565b5060208310610133831016604e8410600b8410161715613d4d575081810a610c71565b613d578383613c8f565b8060001904821115613d6b57613d6b613c60565b029392505050565b6000612fa160ff841683613cd2565b600082613db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000816000190483118215151615613dd757613dd7613c60565b500290565b600082821015613dee57613dee613c60565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff821660ff811415613e3957613e39613c60565b60010192915050565b60008219821115613e5557613e55613c60565b500190565b600060208284031215613e6c57600080fd5b5051919050565b600061ffff808316818516808303821115613e9057613e90613c60565b01949350505050565b600060208284031215613eab57600080fd5b8151612fa1816137aa565b600060208284031215613ec857600080fd5b8151612fa181613a05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613f235784516001600160a01b031683529383019391830191600101613efe565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c0c40bfee5405c4ce3896d00b1d109740ea49cc50e24d90ab47ad3ce01a7719264736f6c634300080b0033
Deployed Bytecode Sourcemap
6506:20045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8098:73;;;;;;;;;;;;8129:42;8098:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;8098:73:0;;;;;;;;8651:52;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;8651:52:0;245:177:1;7586:116:0;;;;;;;;;;-1:-1:-1;7586:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;633:6:1;666:15;;;648:34;;718:15;;;713:2;698:18;;691:43;770:15;;750:18;;;743:43;;;;611:2;596:18;7586:116:0;427:365:1;12644:80:0;;;;;;;;;;-1:-1:-1;12716:5:0;;;;;;;;;;;;;;;;;12644:80;;;;;;;:::i;8035:26::-;;;;;;;;;;-1:-1:-1;8035:26:0;;;;-1:-1:-1;;;;;8035:26:0;;;16698:149;;;;;;;;;;-1:-1:-1;16698:149:0;;;;;:::i;:::-;;:::i;:::-;;13257:161;;;;;;;;;;-1:-1:-1;13257:161:0;;;;;:::i;:::-;;:::i;:::-;;;2535:14:1;;2528:22;2510:41;;2498:2;2483:18;13257:161:0;2370:187:1;18840:112:0;;;;;;;;;;;;;:::i;12347:115::-;;;;;;;;;;;;;:::i;13924:306::-;;;;;;;;;;-1:-1:-1;13924:306:0;;;;;:::i;:::-;;:::i;17763:267::-;;;;;;;;;;-1:-1:-1;17763:267:0;;;;;:::i;:::-;;:::i;24194:373::-;;;;;;;;;;-1:-1:-1;24194:373:0;;;;;:::i;:::-;;:::i;16495:195::-;;;;;;;;;;-1:-1:-1;16495:195:0;;;;;:::i;:::-;;:::i;7832:42::-;;;;;;;;;;;;7870:4;7832:42;;8710:50;;;;;;;;;;;;;;;;12468:80;;;;;;;;;;-1:-1:-1;12468:80:0;;7289:1;6918:36:1;;6906:2;6891:18;12468:80:0;6776:184:1;16855:397:0;;;;;;;;;;-1:-1:-1;16855:397:0;;;;;:::i;:::-;;:::i;16379:108::-;;;;;;;;;;-1:-1:-1;16379:108:0;;;;;:::i;:::-;;:::i;18960:338::-;;;;;;;;;;-1:-1:-1;18960:338:0;;;;;:::i;:::-;;:::i;18165:140::-;;;;;;;;;;-1:-1:-1;18165:140:0;;;;;:::i;:::-;;:::i;14238:215::-;;;;;;;;;;-1:-1:-1;14238:215:0;;;;;:::i;:::-;;:::i;17486:269::-;;;;;;;;;;-1:-1:-1;17486:269:0;;;;;:::i;:::-;;:::i;8068:21::-;;;;;;;;;;-1:-1:-1;8068:21:0;;;;-1:-1:-1;;;;;8068:21:0;;;8888:34;;;;;;;;;;-1:-1:-1;8888:34:0;;;;;;;;11201:590;;;;;;;;;;-1:-1:-1;11201:590:0;;;;;:::i;:::-;;:::i;18451:125::-;;;;;;;;;;-1:-1:-1;18451:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;18540:28:0;18516:4;18540:28;;;:19;:28;;;;;;;;;18451:125;8929:36;;;;;;;;;;-1:-1:-1;8929:36:0;;;;;;;;;;;16267:104;;;;;;;;;;;;;:::i;18584:134::-;;;;;;;;;;-1:-1:-1;18584:134:0;;;;;:::i;:::-;;:::i;15752:248::-;;;;;;;;;;-1:-1:-1;15752:248:0;;;;;:::i;:::-;;:::i;18313:130::-;;;;;;;;;;-1:-1:-1;18313:130:0;;;;;:::i;:::-;-1:-1:-1;;;;;18405:30:0;18381:4;18405:30;;;:21;:30;;;;;;;;;18313:130;18726:106;;;;;;;;;;;;;:::i;12957:117::-;;;;;;;;;;-1:-1:-1;12957:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;13050:16:0;13023:7;13050:16;;;:7;:16;;;;;;;12957:117;11799:195;;;;;;;;;;;;;:::i;18038:119::-;;;;;;;;;;;;;:::i;15244:500::-;;;;;;;;;;-1:-1:-1;15244:500:0;;;;;:::i;:::-;;:::i;12730:80::-;;;;;;;;;;-1:-1:-1;12782:7:0;11179:6;-1:-1:-1;;;;;11179:6:0;12730:80;18840:112;13743:173;;;;;;;;;;;;;:::i;23566:429::-;;;;;;;;;;;;;:::i;12554:84::-;;;;;;;;;;-1:-1:-1;12628:7:0;;;;;;;;;;;;;;;;;12554:84;;14461:225;;;;;;;;;;-1:-1:-1;14461:225:0;;;;;:::i;:::-;;:::i;13082:167::-;;;;;;;;;;-1:-1:-1;13082:167:0;;;;;:::i;:::-;;:::i;17260:218::-;;;;;;;;;;-1:-1:-1;17260:218:0;;;;;:::i;:::-;;:::i;16008:118::-;;;;;;;;;;-1:-1:-1;16008:118:0;;;;;:::i;:::-;;:::i;19527:165::-;;;;;;;;;;-1:-1:-1;19527:165:0;;;;;:::i;:::-;;:::i;7711:112::-;;;;;;;;;;-1:-1:-1;7711:112:0;;;;;;;;;;;;;;;;;;;;;;19306:213;;;;;;;;;;-1:-1:-1;19306:213:0;;;;;:::i;:::-;;:::i;12816:133::-;;;;;;;;;;-1:-1:-1;12816:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12918:19:0;;;12900:7;12918:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12816:133;8568:45;;;;;;;;;;;;;;;;24575:482;;;;;;;;;;-1:-1:-1;24575:482:0;;;;;:::i;:::-;;:::i;14694:542::-;;;;;;;;;;-1:-1:-1;14694:542:0;;;;;:::i;:::-;;:::i;24003:183::-;;;;;;;;;;;;;:::i;8288:203::-;;;;;;;;;;-1:-1:-1;8288:203:0;;;;;;-1:-1:-1;;;;;8288:203:0;;;;;;;;;;;-1:-1:-1;;;;;10980:15:1;;;10962:34;;11032:15;;;;11027:2;11012:18;;11005:43;10874:18;8288:203:0;10695:359:1;8522:39:0;;;;;;;;;;-1:-1:-1;8522:39:0;;;;;;;;;;;16134:125;;;;;;;;;;-1:-1:-1;16134:125:0;;;;;:::i;:::-;;:::i;16698:149::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;;;;;;;;;16782:2:::1;16775:3;:9;;16767:30;;;::::0;-1:-1:-1;;;16767:30:0;;11607:2:1;16767:30:0::1;::::0;::::1;11589:21:1::0;11646:1;11626:18;;;11619:29;11684:10;11664:18;;;11657:38;11712:18;;16767:30:0::1;11405:331:1::0;16767:30:0::1;16808:9;::::0;:31:::1;::::0;;;;::::1;::::0;::::1;391:25:1::0;;;16808:9:0;;;::::1;-1:-1:-1::0;;;;;16808:9:0::1;::::0;:26:::1;::::0;364:18:1;;16808:31:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16698:149:::0;:::o;13257:161::-;13332:4;13349:39;273:10;13372:7;13381:6;13349:8;:39::i;:::-;-1:-1:-1;13406:4:0;13257:161;;;;;:::o;18840:112::-;18885:7;18930:13;7289:1;18930:2;:13;:::i;:::-;18912:14;;:32;;;;:::i;:::-;18905:39;;18840:112;:::o;12347:115::-;12402:7;7349:13;7289:1;7349:2;:13;:::i;:::-;7332:30;;7130:19;7332:30;:::i;:::-;12413:31;;12433:8;;;12413:31;7349:13;7289:1;7349:2;:13;:::i;:::-;7332:30;;7130:19;7332:30;:::i;13924:306::-;-1:-1:-1;;;;;14045:19:0;;14024:4;14045:19;;;:11;:19;;;;;;;;14065:10;14045:31;;;;;;;;-1:-1:-1;;14045:52:0;14041:126;;-1:-1:-1;;;;;14114:19:0;;;;;;:11;:19;;;;;;;;14134:10;14114:31;;;;;;;:41;;14149:6;;14114:19;:41;;14149:6;;14114:41;:::i;:::-;;;;-1:-1:-1;;14041:126:0;14186:36;14196:6;14204:9;14215:6;14186:9;:36::i;:::-;14179:43;13924:306;-1:-1:-1;;;;13924:306:0:o;17763:267::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;17905:4:::1;7349:13;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17895:14;;;;:::i;:::-;17883:7:::0;17872;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17862:17;;;;:::i;:::-;17861:29;;;;:::i;:::-;:49;;17853:112;;;::::0;-1:-1:-1;;;17853:112:0;;14277:2:1;17853:112:0::1;::::0;::::1;14259:21:1::0;14316:2;14296:18;;;14289:30;14355:34;14335:18;;;14328:62;14426:20;14406:18;;;14399:48;14464:19;;17853:112:0::1;14075:414:1::0;17853:112:0::1;18015:7:::0;18004;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17994:17;;;;:::i;:::-;17993:29;;;;:::i;:::-;17976:14;:46:::0;-1:-1:-1;;17763:267:0:o;24194:373::-;24319:7;:14;24300:8;:15;:33;24292:67;;;;-1:-1:-1;;;24292:67:0;;14696:2:1;24292:67:0;;;14678:21:1;14735:2;14715:18;;;14708:30;14774:23;14754:18;;;14747:51;14815:18;;24292:67:0;14494:345:1;24292:67:0;24375:7;24370:190;24392:8;:15;24388:1;:19;;;24370:190;;;24462:7;24470:1;24462:10;;;;;;;;;;:::i;:::-;;;;;;;24437:21;24447:10;-1:-1:-1;;;;;13050:16:0;13023:7;13050:16;;;:7;:16;;;;;;;12957:117;24437:21;:35;;24429:44;;;;;;24488:60;24498:10;24510:8;24519:1;24510:11;;;;;;;;;;:::i;:::-;;;;;;;7289:1;24534:2;:13;;;;:::i;:::-;24523:7;24531:1;24523:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24488:9;:60::i;:::-;-1:-1:-1;24409:3:0;;;;:::i;:::-;;;;24370:190;;;;24194:373;;:::o;16495:195::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;16617:9:::1;::::0;:65:::1;::::0;;;;15445:14:1;;15438:22;16617:65:0::1;::::0;::::1;15420:41:1::0;15504:14;;15497:22;15477:18;;;15470:50;15563:14;;15556:22;15536:18;;;15529:50;15622:14;;15615:22;15595:18;;;15588:50;16617:9:0;;;::::1;-1:-1:-1::0;;;;;16617:9:0::1;::::0;:24:::1;::::0;15392:19:1;;16617:65:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16495:195:::0;;;;:::o;16855:397::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;7870:4:::1;16962:6;:21;;;;:65;;;;;7920:4;17004:7;:23;;;;16962:65;:117;;;;;7974:4;17048:11;:31;;;;16962:117;16954:170;;;::::0;-1:-1:-1;;;16954:170:0;;15851:2:1;16954:170:0::1;::::0;::::1;15833:21:1::0;15890:2;15870:18;;;15863:30;15929:25;15909:18;;;15902:53;15972:18;;16954:170:0::1;15649:347:1::0;16954:170:0::1;17135:9;:25:::0;;::::1;::::0;;::::1;17171:27:::0;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;17209:35:::0;::::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;16855:397::o;16379:108::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;16448:9:::1;::::0;:31:::1;::::0;;;;-1:-1:-1;;;;;178:55:1;;;16448:31:0::1;::::0;::::1;160:74:1::0;16448:9:0;;;::::1;::::0;;::::1;::::0;:22:::1;::::0;133:18:1;;16448:31:0::1;14:226:1::0;18960:338:0;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;19174:16;19154;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;19144:26;;;;:::i;:::-;19143:47;;;;:::i;:::-;19127:13;:63:::0;19242:13;19225;7349::::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;19215:23;;;;:::i;:::-;19214:41;;;;:::i;:::-;19201:10;:54:::0;19266:17:::1;:24:::0;-1:-1:-1;;;;18960:338:0:o;18165:140::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;-1:-1:-1;;;;;18257:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;18257:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18165:140::o;14238:215::-;273:10;14326:4;14375:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14375:34:0;;;;;;;;;;14326:4;;14343:80;;14366:7;;14375:47;;14412:10;;14375:47;:::i;:::-;14343:8;:80::i;17486:269::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;17627:4:::1;7349:13;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17617:14;;;;:::i;:::-;17605:7:::0;17594;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17584:17;;;;:::i;:::-;17583:29;;;;:::i;:::-;:49;;17575:117;;;::::0;-1:-1:-1;;;17575:117:0;;16336:2:1;17575:117:0::1;::::0;::::1;16318:21:1::0;16375:2;16355:18;;;16348:30;16414:34;16394:18;;;16387:62;16485:25;16465:18;;;16458:53;16528:19;;17575:117:0::1;16134:419:1::0;17575:117:0::1;17740:7:::0;17729;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;17719:17;;;;:::i;:::-;17718:29;;;;:::i;:::-;17703:12;:44:::0;-1:-1:-1;;17486:269:0:o;11201:590::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;-1:-1:-1;;;;;11282:22:0;::::1;11274:96;;;::::0;-1:-1:-1;;;11274:96:0;;16760:2:1;11274:96:0::1;::::0;::::1;16742:21:1::0;16799:2;16779:18;;;16772:30;16838:34;16818:18;;;16811:62;16909:31;16889:18;;;16882:59;16958:19;;11274:96:0::1;16558:425:1::0;11274:96:0::1;-1:-1:-1::0;;;;;11389:16:0;::::1;8129:42;11389:16;;11381:90;;;::::0;-1:-1:-1;;;11381:90:0;;16760:2:1;11381:90:0::1;::::0;::::1;16742:21:1::0;16799:2;16779:18;;;16772:30;16838:34;16818:18;;;16811:62;16909:31;16889:18;;;16882:59;16958:19;;11381:90:0::1;16558:425:1::0;11381:90:0::1;11502:6;::::0;;11482:34:::1;::::0;-1:-1:-1;;;;;11502:6:0;;::::1;::::0;11482:19:::1;:34::i;:::-;11527:35;11547:8;11557:4;11527:19;:35::i;:::-;11606:1;11596:6:::0;;-1:-1:-1;;;;;11596:6:0::1;13050:16:::0;;:7;:16;;;;;;11586:21;11583:99:::1;;11634:6;::::0;;-1:-1:-1;;;;;11634:6:0::1;13050:16:::0;;;:7;:16;;;;;;;11624:46:::1;::::0;11634:6;11642:8;;24488:9;:60::i;11624:46::-:1;;11583:99;11702:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;11702:17:0;::::1;::::0;;::::1;::::0;;11735:38:::1;::::0;11702:17;;;;11735:38:::1;::::0;11702:6;11735:38:::1;11201:590:::0;:::o;16267:104::-;16312:7;16339:9;;;;;;;;;-1:-1:-1;;;;;16339:9:0;-1:-1:-1;;;;;16339:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18584:134::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;-1:-1:-1;;;;;18672:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;18672:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18584:134::o;15752:248::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;15836:16:::1;::::0;::::1;::::0;::::1;;;15835:17;15827:54;;;::::0;-1:-1:-1;;;15827:54:0;;17379:2:1;15827:54:0::1;::::0;::::1;17361:21:1::0;17418:2;17398:18;;;17391:30;17457:26;17437:18;;;17430:54;17501:18;;15827:54:0::1;17177:348:1::0;15827:54:0::1;-1:-1:-1::0;;;;;15900:28:0;::::1;15923:4;15900:28;;15892:55;;;::::0;-1:-1:-1;;;15892:55:0;;17732:2:1;15892:55:0::1;::::0;::::1;17714:21:1::0;17771:2;17751:18;;;17744:30;17810:16;17790:18;;;17783:44;17844:18;;15892:55:0::1;17530:338:1::0;15892:55:0::1;15958:9;:34:::0;;-1:-1:-1;;;;;15958:34:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15752:248::o;18726:106::-;18767:7;18810:13;7289:1;18810:2;:13;:::i;:::-;18794:12;;:30;;;;:::i;11799:195::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;11886:6:::1;::::0;;11866:34:::1;::::0;-1:-1:-1;;;;;11886:6:0;;::::1;::::0;11866:19:::1;:34::i;:::-;11928:1;11911:19:::0;;;::::1;::::0;;11946:40:::1;::::0;11928:1;;11946:40:::1;::::0;11928:1;;11946:40:::1;11799:195::o:0;18038:119::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;18092:12;:22:::0;7349:13:::1;7289:1;7349:2;:13;:::i;:::-;7332:30;::::0;7130:19:::1;7332:30;:::i;:::-;18125:14;:24:::0;18038:119::o;15244:500::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;15325:16;15321:416:::1;;-1:-1:-1::0;;;;;15358:13:0;;::::1;15374:5;15358:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;15358:21:0::1;::::0;;15394:9:::1;::::0;:32;;;;;::::1;::::0;::::1;18041:74:1::0;;;;18131:18;;;18124:50;;;;15394:9:0;;::::1;::::0;;::::1;::::0;:19:::1;::::0;18014:18:1;;15394:32:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15244:500:::0;;:::o;15321:416::-:1;15463:17;::::0;:22;15459:136:::1;;15552:6;15532:17;;15514:15;:35;;;;:::i;:::-;:44;15506:73;;;::::0;-1:-1:-1;;;15506:73:0;;18387:2:1;15506:73:0::1;::::0;::::1;18369:21:1::0;18426:2;18406:18;;;18399:30;18465:18;18445;;;18438:46;18501:18;;15506:73:0::1;18185:340:1::0;15506:73:0::1;-1:-1:-1::0;;;;;15609:13:0;;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;:20;;-1:-1:-1;;15609:20:0::1;15625:4;15609:20:::0;;::::1;::::0;;;15664:15:::1;15644:17;:35:::0;;;15694:9:::1;::::0;:31;;;;;;;::::1;18041:74:1::0;;;;18131:18;;;18124:50;15694:9:0;;::::1;::::0;;::::1;::::0;:19:::1;::::0;18014:18:1;;15694:31:0::1;17873:307:1::0;15321:416:0::1;15244:500:::0;;:::o;13743:173::-;13807:4;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;13856:9:::1;::::0;13824:62:::1;::::0;13841:4:::1;::::0;-1:-1:-1;;;;;13856:9:0::1;-1:-1:-1::0;;13824:8:0::1;:62::i;:::-;-1:-1:-1::0;13904:4:0::1;13743:173:::0;:::o;23566:429::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;23628:14:::1;::::0;::::1;;23627:15;23619:52;;;::::0;-1:-1:-1;;;23619:52:0;;18732:2:1;23619:52:0::1;::::0;::::1;18714:21:1::0;18771:2;18751:18;;;18744:30;18810:26;18790:18;;;18783:54;18854:18;;23619:52:0::1;18530:348:1::0;23619:52:0::1;23690:16;::::0;::::1;::::0;::::1;;;23682:53;;;::::0;-1:-1:-1;;;23682:53:0;;19085:2:1;23682:53:0::1;::::0;::::1;19067:21:1::0;19124:2;19104:18;;;19097:30;19163:26;19143:18;;;19136:54;19207:18;;23682:53:0::1;18883:348:1::0;23682:53:0::1;23757:9;::::0;;;::::1;-1:-1:-1::0;;;;;23757:9:0::1;23746:99;;23797:9;:36:::0;;;::::1;23827:4;23797:36:::0;::::1;;::::0;;23746:99:::1;23859:9;::::0;23879:6:::1;::::0;23859:85:::1;::::0;;;;-1:-1:-1;;;;;23879:6:0;;::::1;23859:85;::::0;::::1;19459:74:1::0;19581:10;23894:12:0::1;19569:23:1::0;19549:18;;;19542:51;19641:18;23916:15:0::1;19629:31:1::0;19609:18;;;19602:59;7289:1:0::1;19677:18:1::0;;;19670:45;23859:9:0;;;::::1;;::::0;:19:::1;::::0;19431::1;;23859:85:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;23855:101:::0;23966:14:::1;:21:::0;;-1:-1:-1;;23966:21:0::1;23983:4;23966:21;::::0;;23566:429::o;14461:225::-;273:10;14554:4;14603:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14603:34:0;;;;;;;;;;14554:4;;14571:85;;14594:7;;14603:52;;14640:15;;14603:52;:::i;13082:167::-;13160:4;13177:42;273:10;13201:9;13212:6;13177:9;:42::i;:::-;-1:-1:-1;13237:4:0;;13082:167;-1:-1:-1;;;13082:167:0:o;17260:218::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;17347:7:::1;:33:::0;;::::1;17391:29:::0;;::::1;::::0;::::1;::::0;;;;17347:33;;::::1;17391:29:::0;::::1;::::0;;17447:23:::1;17411:9:::0;17369:11;17447:23:::1;:::i;:::-;17431:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;17260:218:0:o;16008:118::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;16082:9:::1;::::0;:36:::1;::::0;;;;-1:-1:-1;;;;;178:55:1;;;16082:36:0::1;::::0;::::1;160:74:1::0;16082:9:0;;;::::1;::::0;;::::1;::::0;:27:::1;::::0;133:18:1;;16082:36:0::1;14:226:1::0;19527:165:0;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;19602:19:::1;:30:::0;;;::::1;;;;-1:-1:-1::0;;19602:30:0;;::::1;;::::0;;19648:36:::1;::::0;::::1;::::0;::::1;::::0;19624:8;2535:14:1;2528:22;2510:41;;2498:2;2483:18;;2370:187;19648:36:0::1;;;;;;;;19527:165:::0;:::o;19306:213::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;19412:11:::1;:42:::0;;-1:-1:-1;;;;;19412:42:0;;::::1;::::0;;;::::1;;::::0;;;19465:23;:46;;;;;::::1;::::0;::::1;;::::0;;19306:213::o;24575:482::-;24730:8;:15;24711:8;:15;:34;:72;;;;;24768:8;:15;24749:8;:15;:34;24711:72;24703:106;;;;-1:-1:-1;;;24703:106:0;;14696:2:1;24703:106:0;;;14678:21:1;14735:2;14715:18;;;14708:30;14774:23;14754:18;;;14747:51;14815:18;;24703:106:0;14494:345:1;24703:106:0;24825:7;24820:230;24842:8;:15;24838:1;:19;;;24820:230;;;24938:8;24947:1;24938:11;;;;;;;;;;:::i;:::-;;;;;;;24923:8;24932:1;24923:11;;;;;;;;;;:::i;:::-;;;;;;;7289:1;7349:2;:13;;;;:::i;:::-;7332:30;;7130:19;7332:30;:::i;:::-;24913:21;;;;:::i;:::-;24912:37;;;;:::i;:::-;24897:10;13023:7;13050:16;;;:7;:16;;;;;;24887:62;;24879:71;;;;;;24965:73;24975:10;24987:8;24996:1;24987:11;;;;;;;;;;:::i;:::-;;;;;;;25026:8;25035:1;25026:11;;;;;;;;;;:::i;:::-;;;;;;;25011:8;25020:1;25011:11;;;;;;;;;;:::i;:::-;;;;;;;7289:1;7349:2;:13;;;;:::i;:::-;7332:30;;7130:19;7332:30;:::i;:::-;25001:21;;;;:::i;:::-;25000:37;;;;:::i;24965:73::-;-1:-1:-1;24859:3:0;;;;:::i;:::-;;;;24820:230;;;;24575:482;;;:::o;14694:542::-;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;14765:20:::1;14798:9;14765:43;;14819:16;14849:10;-1:-1:-1::0;;;;;14849:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14838:40:0::1;;14887:4;14894:10;-1:-1:-1::0;;;;;14894:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14838:74;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;10980:15:1;;;14838:74:0::1;::::0;::::1;10962:34:1::0;11032:15;;11012:18;;;11005:43;10874:18;;14838:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14819:93:::0;-1:-1:-1;;;;;;14927:22:0;::::1;14923:200;;14986:10;-1:-1:-1::0;;;;;14986:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14975:43:0::1;;15027:4;15034:10;-1:-1:-1::0;;;;;15034:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14975:77;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;10980:15:1;;;14975:77:0::1;::::0;::::1;10962:34:1::0;11032:15;;11012:18;;;11005:43;10874:18;;14975:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14966:6;:86:::0;;;::::1;-1:-1:-1::0;;;;;14966:86:0;;;::::1;::::0;;;::::1;::::0;;14923:200:::1;;;15094:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;15094:17:0;::::1;;::::0;;14923:200:::1;15133:9;:22:::0;;;::::1;-1:-1:-1::0;;;;;15133:22:0;::::1;::::0;;::::1;::::0;;;15166:62:::1;::::0;15183:4:::1;::::0;-1:-1:-1;;15166:8:0::1;:62::i;24003:183::-:0;9357:6;;-1:-1:-1;;;;;9357:6:0;273:10;9357:22;9349:52;;;;-1:-1:-1;;;9349:52:0;;11261:2:1;9349:52:0;;;11243:21:1;11300:2;11280:18;;;11273:30;-1:-1:-1;;;11319:18:1;;;11312:47;11376:18;;9349:52:0;11059:341:1;9349:52:0;24070:16:::1;::::0;::::1;::::0;::::1;;;24069:17;24061:58;;;::::0;-1:-1:-1;;;24061:58:0;;20745:2:1;24061:58:0::1;::::0;::::1;20727:21:1::0;20784:2;20764:18;;;20757:30;20823;20803:18;;;20796:58;20871:18;;24061:58:0::1;20543:352:1::0;24061:58:0::1;11152:7:::0;11179:6;;24130:48:::1;::::0;-1:-1:-1;;;;;11179:6:0;;;;24156:21:::1;24130:48:::0;::::1;;;::::0;24156:21;;24130:48;11152:7;24130:48;24156:21;11179:6;24130:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24003:183::o:0;16134:125::-;16219:9;;:32;;;;;-1:-1:-1;;;;;178:55:1;;;16219:32:0;;;160:74:1;16195:4:0;;16219:9;;;;;:23;;133:18:1;;16219:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13426:309::-;-1:-1:-1;;;;;13520:20:0;;13512:52;;;;-1:-1:-1;;;13512:52:0;;21352:2:1;13512:52:0;;;21334:21:1;21391:2;21371:18;;;21364:30;21430:21;21410:18;;;21403:49;21469:18;;13512:52:0;21150:343:1;13512:52:0;-1:-1:-1;;;;;13583:21:0;;13575:53;;;;-1:-1:-1;;;13575:53:0;;21352:2:1;13575:53:0;;;21334:21:1;21391:2;21371:18;;;21364:30;21430:21;21410:18;;;21403:49;21469:18;;13575:53:0;21150:343:1;13575:53:0;-1:-1:-1;;;;;13641:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13694:33;;391:25:1;;;13694:33:0;;364:18:1;13694:33:0;;;;;;;13426:309;;;:::o;20068:1818::-;20147:4;-1:-1:-1;;;;;20172:18:0;;20164:68;;;;-1:-1:-1;;;20164:68:0;;21700:2:1;20164:68:0;;;21682:21:1;21739:2;21719:18;;;21712:30;21778:34;21758:18;;;21751:62;21849:7;21829:18;;;21822:35;21874:19;;20164:68:0;21498:401:1;20164:68:0;-1:-1:-1;;;;;20251:16:0;;20243:64;;;;-1:-1:-1;;;20243:64:0;;22106:2:1;20243:64:0;;;22088:21:1;22145:2;22125:18;;;22118:30;22184:34;22164:18;;;22157:62;22255:5;22235:18;;;22228:33;22278:19;;20243:64:0;21904:399:1;20243:64:0;20335:1;20326:6;:10;20318:64;;;;-1:-1:-1;;;20318:64:0;;22510:2:1;20318:64:0;;;22492:21:1;22549:2;22529:18;;;22522:30;22588:34;22568:18;;;22561:62;22659:11;22639:18;;;22632:39;22688:19;;20318:64:0;22308:405:1;20318:64:0;20396:20;20407:4;20413:2;20396:10;:20::i;:::-;20393:665;;;20437:14;;;;20433:89;;20472:34;;-1:-1:-1;;;20472:34:0;;22920:2:1;20472:34:0;;;22902:21:1;22959:2;22939:18;;;22932:30;22998:26;22978:18;;;22971:54;23042:18;;20472:34:0;22718:348:1;20433:89:0;-1:-1:-1;;;;;20539:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;20556:11:0;;;;;;:7;:11;;;;;;;;20539:28;20536:248;;;-1:-1:-1;;;;;20592:27:0;;;;;;:21;:27;;;;;;;;20591:28;:58;;;;-1:-1:-1;;;;;;20624:25:0;;;;;;:21;:25;;;;;;;;20623:26;20591:58;20587:182;;;20692:12;;20682:6;:22;;20674:75;;;;-1:-1:-1;;;20674:75:0;;23273:2:1;20674:75:0;;;23255:21:1;23312:2;23292:18;;;23285:30;23351:34;23331:18;;;23324:62;23422:10;23402:18;;;23395:38;23450:19;;20674:75:0;23071:404:1;20674:75:0;20815:9;;-1:-1:-1;;;;;20801:24:0;;;20815:9;;20801:24;;;;:40;;-1:-1:-1;;;;;;20830:11:0;;;;;;:7;:11;;;;;;;;20829:12;20801:40;20798:249;;;-1:-1:-1;;;;;20867:25:0;;;;;;:21;:25;;;;;;;;20862:170;;20951:14;;20941:6;20925:13;20935:2;-1:-1:-1;;;;;13050:16:0;13023:7;13050:16;;;:7;:16;;;;;;;12957:117;20925:13;:22;;;;:::i;:::-;:40;;20917:95;;;;-1:-1:-1;;;20917:95:0;;23682:2:1;20917:95:0;;;23664:21:1;23721:2;23701:18;;;23694:30;23760:34;23740:18;;;23733:62;23831:12;23811:18;;;23804:40;23861:19;;20917:95:0;23480:406:1;20917:95:0;-1:-1:-1;;;;;21103:25:0;;21070:12;21103:25;;;:19;:25;;;;;;21085:4;;21103:25;;;:52;;-1:-1:-1;;;;;;21132:23:0;;;;;;:19;:23;;;;;;;;21103:52;21100:98;;;-1:-1:-1;21181:5:0;21100:98;-1:-1:-1;;;;;21214:11:0;;;;;;:7;:11;;;;;;;;21210:606;;;21247:6;;;;21246:7;:47;;;;-1:-1:-1;21274:19:0;;;;;;;21246:47;21242:557;;;21363:15;21343:17;;21332:8;;:28;;;;:::i;:::-;:46;21328:456;;;21452:4;21403:28;13050:16;;;:7;:16;;;;;;21509:13;;21485:37;;21481:284;;21578:10;;21554:20;:34;21551:77;;-1:-1:-1;21615:10:0;;21551:77;21654:34;21667:20;21654:12;:34::i;:::-;21726:15;21715:8;:26;21481:284;21380:404;21328:456;21834:44;21852:4;21858:2;21862:6;21870:7;21834:17;:44::i;:::-;21827:51;20068:1818;-1:-1:-1;;;;;20068:1818:0:o;19700:360::-;19768:4;11179:6;;-1:-1:-1;;;;;19792:15:0;;;11179:6;;19792:15;;;;:45;;-1:-1:-1;11152:7:0;11179:6;-1:-1:-1;;;;;19824:13:0;;;11179:6;;19824:13;;19792:45;:82;;;;-1:-1:-1;11152:7:0;11179:6;-1:-1:-1;;;;;11179:6:0;19854:9;:20;;19792:82;:121;;;;-1:-1:-1;;;;;;19892:21:0;;;;;;:17;:21;;;;;;;;19891:22;19792:121;:162;;;;-1:-1:-1;;;;;;19931:23:0;;;;;;:17;:23;;;;;;;;19930:24;19792:162;:189;;;;-1:-1:-1;;;;;;19971:10:0;;8129:42;19971:10;;19792:189;:222;;;;-1:-1:-1;;;;;;19998:16:0;;;;19792:222;:260;;;;-1:-1:-1;;;;;;20031:21:0;;20047:4;20031:21;;19792:260;19785:267;19700:360;-1:-1:-1;;;19700:360:0:o;21894:1148::-;9251:6;:13;;-1:-1:-1;;9251:13:0;9260:4;9251:13;;;21977:30:::1;::::0;;::::1;::::0;::::1;::::0;;22000:7:::1;21977:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;22018:56:::1;;22056:7;;;22018:56;22109:4;22089:26;::::0;;;:11:::1;:26;::::0;;;;;;;22124:9:::1;::::0;-1:-1:-1;;;;;22124:9:0::1;22089:46:::0;;;;;;;;-1:-1:-1;;22089:67:0::1;22086:165;;22193:4;22173:26;::::0;;;:11:::1;:26;::::0;;;;;;;22208:9:::1;::::0;-1:-1:-1;;;;;22208:9:0::1;22173:46:::0;;;;;;;-1:-1:-1;;22173:66:0;;22086:165:::1;22295:16;::::0;;22309:1:::1;22295:16:::0;;;;;::::1;::::0;;22271:21:::1;::::0;22295:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22295:16:0::1;22271:40;;22340:4;22322;22327:1;22322:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22322:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22366:9:::1;::::0;:16:::1;::::0;;;;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;22322:7;;22366:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22356:4;22361:1;22356:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22356:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;22395:9:::1;::::0;:199:::1;::::0;;;;:9;::::1;::::0;:60:::1;::::0;:199:::1;::::0;22470:20;;22395:9:::1;::::0;22521:4;;22548::::1;::::0;22568:15:::1;::::0;22395:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;22725:12:0::1;::::0;::::1;::::0;22703:18;;22628:21:::1;::::0;-1:-1:-1;22607:18:0::1;::::0;22689:48:::1;::::0;;::::1;::::0;22690:31:::1;::::0;::::1;22628:21:::0;22690:31:::1;:::i;:::-;22689:48;;;;:::i;:::-;22660:77:::0;-1:-1:-1;22748:24:0::1;22775:31;22660:77:::0;22775:10;:31:::1;:::i;:::-;22821:18:::0;;22748:58;;-1:-1:-1;22821:22:0::1;;::::0;22817:107:::1;;22860:23:::0;;:52:::1;::::0;-1:-1:-1;;;;;22860:23:0;;::::1;::::0;:52;::::1;;;::::0;22893:18;;22860:23:::1;:52:::0;:23;:52;22893:18;22860:23;:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22817:107;22938:16;::::0;::::1;::::0;:20:::1;;::::0;22934:101:::1;;22975:11;:21:::0;:48:::1;::::0;-1:-1:-1;;;;;22975:21:0;;::::1;::::0;:48;::::1;;;::::0;23006:16;;22975:21:::1;:48:::0;:21;:48;23006:16;22975:21;:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22934:101;21966:1076;;;;;9275:1;-1:-1:-1::0;9287:6:0;:14;;-1:-1:-1;;9287:14:0;;;21894:1148::o;25065:905::-;25187:16;;25165:4;;25187:16;;;;;25182:221;;25220:28;25239:4;25245:2;25220:18;:28::i;:::-;25268:16;;;;;;;25267:17;:41;;;;;25288:20;25299:4;25305:2;25288:10;:20::i;:::-;25263:129;;;25329:47;;-1:-1:-1;;;25329:47:0;;25124:2:1;25329:47:0;;;25106:21:1;25163:2;25143:18;;;25136:30;25202:34;25182:18;;;25175:62;25273:7;25253:18;;;25246:35;25298:19;;25329:47:0;24922:401:1;25263:129:0;25419:20;25430:4;25436:2;25419:10;:20::i;:::-;25415:314;;;25487:9;;:37;;;;;-1:-1:-1;;;;;25609:15:1;;;25487:37:0;;;25591:34:1;25661:15;;;25641:18;;;25634:43;25693:18;;;25686:34;;;25456:12:0;;25487:9;;;;;:19;;25503:18:1;;25487:37:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;25487:37:0;;;;;;;;-1:-1:-1;;25487:37:0;;;;;;;;;;;;:::i;:::-;;;25483:163;;25622:8;;;25483:163;25575:5;-1:-1:-1;25666:7:0;25662:56;;25694:8;;;25662:56;25441:288;25415:314;-1:-1:-1;;;;;25741:13:0;;;;;;:7;:13;;;;;:23;;25758:6;;25741:13;:23;;25758:6;;25741:23;:::i;:::-;;;;-1:-1:-1;25775:22:0;;-1:-1:-1;25801:7:0;25800:48;;25842:6;25800:48;;;25812:27;25822:4;25828:2;25832:6;25812:9;:27::i;:::-;-1:-1:-1;;;;;25859:11:0;;;;;;:7;:11;;;;;:29;;25775:73;;-1:-1:-1;25775:73:0;;25859:11;;;:29;;25775:73;;25859:29;:::i;:::-;;;;;;;;25921:2;-1:-1:-1;;;;;25906:34:0;25915:4;-1:-1:-1;;;;;25906:34:0;;25925:14;25906:34;;;;391:25:1;;379:2;364:18;;245:177;25906:34:0;;;;;;;;-1:-1:-1;25958:4:0;;25065:905;-1:-1:-1;;;;;25065:905:0:o;23050:508::-;23132:16;;;;;;;23131:17;23123:65;;;;-1:-1:-1;;;23123:65:0;;25933:2:1;23123:65:0;;;25915:21:1;25972:2;25952:18;;;25945:30;26011:34;25991:18;;;25984:62;26082:5;26062:18;;;26055:33;26105:19;;23123:65:0;25731:399:1;23123:65:0;23204:20;23215:4;23221:2;23204:10;:20::i;:::-;23203:21;:37;;;;-1:-1:-1;23234:6:0;;-1:-1:-1;;;;;23228:12:0;;;23234:6;;23228:12;23203:37;23199:352;;;-1:-1:-1;;;;;23257:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;23257:30:0;23283:4;23257:30;;;23302:16;:23;;-1:-1:-1;;23302:23:0;23257:30;23302:23;;;;;23351:9;;;;23340:107;;23395:9;:36;;;;23425:4;23395:36;;;;;23340:107;23461:19;:26;;-1:-1:-1;;23461:26:0;;;;;23507:32;;-1:-1:-1;2510:41:1;;23507:32:0;;2498:2:1;2483:18;23507:32:0;;;;;;;23050:508;;:::o;25978:570::-;-1:-1:-1;;;;;26110:13:0;;26057:7;26110:13;;;:7;:13;;;;;;26057:7;;26110:13;;26106:222;;;-1:-1:-1;26153:9:0;:16;;;26106:222;;;-1:-1:-1;;;;;26191:11:0;;;;;;:7;:11;;;;;;;;26187:141;;;-1:-1:-1;26232:9:0;:17;;;;;;26187:141;;;-1:-1:-1;26295:9:0;:21;;;;;;26187:141;26340:17;8021:5;26360:19;26369:10;26360:6;:19;:::i;:::-;:38;;;;:::i;:::-;26427:4;26411:22;;;;:7;:22;;;;;:35;;26340:58;;-1:-1:-1;26340:58:0;;26411:22;;;:35;;26340:58;;26411:35;:::i;:::-;;;;-1:-1:-1;;26462:40:0;;391:25:1;;;26485:4:0;;-1:-1:-1;;;;;26462:40:0;;;;;379:2:1;364:18;26462:40:0;;;;;;;26522:18;26531:9;26522:6;:18;:::i;:::-;26515:25;25978:570;-1:-1:-1;;;;;;25978:570:0:o;797:656:1:-;909:4;938:2;967;956:9;949:21;999:6;993:13;1042:6;1037:2;1026:9;1022:18;1015:34;1067:1;1077:140;1091:6;1088:1;1085:13;1077:140;;;1186:14;;;1182:23;;1176:30;1152:17;;;1171:2;1148:26;1141:66;1106:10;;1077:140;;;1235:6;1232:1;1229:13;1226:91;;;1305:1;1300:2;1291:6;1280:9;1276:22;1272:31;1265:42;1226:91;-1:-1:-1;1369:2:1;1357:15;-1:-1:-1;;1353:88:1;1338:104;;;;1444:2;1334:113;;797:656;-1:-1:-1;;;797:656:1:o;1706:180::-;1765:6;1818:2;1806:9;1797:7;1793:23;1789:32;1786:52;;;1834:1;1831;1824:12;1786:52;-1:-1:-1;1857:23:1;;1706:180;-1:-1:-1;1706:180:1:o;1891:154::-;-1:-1:-1;;;;;1970:5:1;1966:54;1959:5;1956:65;1946:93;;2035:1;2032;2025:12;2050:315;2118:6;2126;2179:2;2167:9;2158:7;2154:23;2150:32;2147:52;;;2195:1;2192;2185:12;2147:52;2234:9;2221:23;2253:31;2278:5;2253:31;:::i;:::-;2303:5;2355:2;2340:18;;;;2327:32;;-1:-1:-1;;;2050:315:1:o;2562:456::-;2639:6;2647;2655;2708:2;2696:9;2687:7;2683:23;2679:32;2676:52;;;2724:1;2721;2714:12;2676:52;2763:9;2750:23;2782:31;2807:5;2782:31;:::i;:::-;2832:5;-1:-1:-1;2889:2:1;2874:18;;2861:32;2902:33;2861:32;2902:33;:::i;:::-;2562:456;;2954:7;;-1:-1:-1;;;3008:2:1;2993:18;;;;2980:32;;2562:456::o;3023:248::-;3091:6;3099;3152:2;3140:9;3131:7;3127:23;3123:32;3120:52;;;3168:1;3165;3158:12;3120:52;-1:-1:-1;;3191:23:1;;;3261:2;3246:18;;;3233:32;;-1:-1:-1;3023:248:1:o;3276:184::-;3328:77;3325:1;3318:88;3425:4;3422:1;3415:15;3449:4;3446:1;3439:15;3465:334;3536:2;3530:9;3592:2;3582:13;;-1:-1:-1;;3578:86:1;3566:99;;3695:18;3680:34;;3716:22;;;3677:62;3674:88;;;3742:18;;:::i;:::-;3778:2;3771:22;3465:334;;-1:-1:-1;3465:334:1:o;3804:183::-;3864:4;3897:18;3889:6;3886:30;3883:56;;;3919:18;;:::i;:::-;-1:-1:-1;3964:1:1;3960:14;3976:4;3956:25;;3804:183::o;3992:737::-;4046:5;4099:3;4092:4;4084:6;4080:17;4076:27;4066:55;;4117:1;4114;4107:12;4066:55;4153:6;4140:20;4179:4;4203:60;4219:43;4259:2;4219:43;:::i;:::-;4203:60;:::i;:::-;4297:15;;;4383:1;4379:10;;;;4367:23;;4363:32;;;4328:12;;;;4407:15;;;4404:35;;;4435:1;4432;4425:12;4404:35;4471:2;4463:6;4459:15;4483:217;4499:6;4494:3;4491:15;4483:217;;;4579:3;4566:17;4596:31;4621:5;4596:31;:::i;:::-;4640:18;;4678:12;;;;4516;;4483:217;;;-1:-1:-1;4718:5:1;3992:737;-1:-1:-1;;;;;;3992:737:1:o;4734:662::-;4788:5;4841:3;4834:4;4826:6;4822:17;4818:27;4808:55;;4859:1;4856;4849:12;4808:55;4895:6;4882:20;4921:4;4945:60;4961:43;5001:2;4961:43;:::i;4945:60::-;5039:15;;;5125:1;5121:10;;;;5109:23;;5105:32;;;5070:12;;;;5149:15;;;5146:35;;;5177:1;5174;5167:12;5146:35;5213:2;5205:6;5201:15;5225:142;5241:6;5236:3;5233:15;5225:142;;;5307:17;;5295:30;;5345:12;;;;5258;;5225:142;;5401:595;5519:6;5527;5580:2;5568:9;5559:7;5555:23;5551:32;5548:52;;;5596:1;5593;5586:12;5548:52;5636:9;5623:23;5665:18;5706:2;5698:6;5695:14;5692:34;;;5722:1;5719;5712:12;5692:34;5745:61;5798:7;5789:6;5778:9;5774:22;5745:61;:::i;:::-;5735:71;;5859:2;5848:9;5844:18;5831:32;5815:48;;5888:2;5878:8;5875:16;5872:36;;;5904:1;5901;5894:12;5872:36;;5927:63;5982:7;5971:8;5960:9;5956:24;5927:63;:::i;:::-;5917:73;;;5401:595;;;;;:::o;6001:118::-;6087:5;6080:13;6073:21;6066:5;6063:32;6053:60;;6109:1;6106;6099:12;6124:647;6198:6;6206;6214;6222;6275:3;6263:9;6254:7;6250:23;6246:33;6243:53;;;6292:1;6289;6282:12;6243:53;6331:9;6318:23;6350:28;6372:5;6350:28;:::i;:::-;6397:5;-1:-1:-1;6454:2:1;6439:18;;6426:32;6467:30;6426:32;6467:30;:::i;:::-;6516:7;-1:-1:-1;6575:2:1;6560:18;;6547:32;6588:30;6547:32;6588:30;:::i;:::-;6637:7;-1:-1:-1;6696:2:1;6681:18;;6668:32;6709:30;6668:32;6709:30;:::i;:::-;6124:647;;;;-1:-1:-1;6124:647:1;;-1:-1:-1;;6124:647:1:o;6965:159::-;7032:20;;7092:6;7081:18;;7071:29;;7061:57;;7114:1;7111;7104:12;7061:57;6965:159;;;:::o;7129:328::-;7203:6;7211;7219;7272:2;7260:9;7251:7;7247:23;7243:32;7240:52;;;7288:1;7285;7278:12;7240:52;7311:28;7329:9;7311:28;:::i;:::-;7301:38;;7358:37;7391:2;7380:9;7376:18;7358:37;:::i;:::-;7348:47;;7414:37;7447:2;7436:9;7432:18;7414:37;:::i;:::-;7404:47;;7129:328;;;;;:::o;7462:247::-;7521:6;7574:2;7562:9;7553:7;7549:23;7545:32;7542:52;;;7590:1;7587;7580:12;7542:52;7629:9;7616:23;7648:31;7673:5;7648:31;:::i;7714:454::-;7809:6;7817;7825;7833;7841;7894:3;7882:9;7873:7;7869:23;7865:33;7862:53;;;7911:1;7908;7901:12;7862:53;-1:-1:-1;;7934:23:1;;;8004:2;7989:18;;7976:32;;-1:-1:-1;8055:2:1;8040:18;;8027:32;;8106:2;8091:18;;8078:32;;-1:-1:-1;8157:3:1;8142:19;8129:33;;-1:-1:-1;7714:454:1;-1:-1:-1;7714:454:1:o;8173:382::-;8238:6;8246;8299:2;8287:9;8278:7;8274:23;8270:32;8267:52;;;8315:1;8312;8305:12;8267:52;8354:9;8341:23;8373:31;8398:5;8373:31;:::i;:::-;8423:5;-1:-1:-1;8480:2:1;8465:18;;8452:32;8493:30;8452:32;8493:30;:::i;:::-;8542:7;8532:17;;;8173:382;;;;;:::o;8560:256::-;8626:6;8634;8687:2;8675:9;8666:7;8662:23;8658:32;8655:52;;;8703:1;8700;8693:12;8655:52;8726:28;8744:9;8726:28;:::i;:::-;8716:38;;8773:37;8806:2;8795:9;8791:18;8773:37;:::i;:::-;8763:47;;8560:256;;;;;:::o;8821:241::-;8877:6;8930:2;8918:9;8909:7;8905:23;8901:32;8898:52;;;8946:1;8943;8936:12;8898:52;8985:9;8972:23;9004:28;9026:5;9004:28;:::i;9067:404::-;9151:6;9159;9212:2;9200:9;9191:7;9187:23;9183:32;9180:52;;;9228:1;9225;9218:12;9180:52;9267:9;9254:23;9286:31;9311:5;9286:31;:::i;:::-;9336:5;-1:-1:-1;9393:2:1;9378:18;;9365:32;9406:33;9365:32;9406:33;:::i;9869:821::-;10021:6;10029;10037;10090:2;10078:9;10069:7;10065:23;10061:32;10058:52;;;10106:1;10103;10096:12;10058:52;10146:9;10133:23;10175:18;10216:2;10208:6;10205:14;10202:34;;;10232:1;10229;10222:12;10202:34;10255:61;10308:7;10299:6;10288:9;10284:22;10255:61;:::i;:::-;10245:71;;10369:2;10358:9;10354:18;10341:32;10325:48;;10398:2;10388:8;10385:16;10382:36;;;10414:1;10411;10404:12;10382:36;10437:63;10492:7;10481:8;10470:9;10466:24;10437:63;:::i;:::-;10427:73;;10553:2;10542:9;10538:18;10525:32;10509:48;;10582:2;10572:8;10569:16;10566:36;;;10598:1;10595;10588:12;10566:36;;10621:63;10676:7;10665:8;10654:9;10650:24;10621:63;:::i;:::-;10611:73;;;9869:821;;;;;:::o;11741:184::-;11793:77;11790:1;11783:88;11890:4;11887:1;11880:15;11914:4;11911:1;11904:15;11930:482;12019:1;12062:5;12019:1;12076:330;12097:7;12087:8;12084:21;12076:330;;;12216:4;-1:-1:-1;;12144:77:1;12138:4;12135:87;12132:113;;;12225:18;;:::i;:::-;12275:7;12265:8;12261:22;12258:55;;;12295:16;;;;12258:55;12374:22;;;;12334:15;;;;12076:330;;;12080:3;11930:482;;;;;:::o;12417:866::-;12466:5;12496:8;12486:80;;-1:-1:-1;12537:1:1;12551:5;;12486:80;12585:4;12575:76;;-1:-1:-1;12622:1:1;12636:5;;12575:76;12667:4;12685:1;12680:59;;;;12753:1;12748:130;;;;12660:218;;12680:59;12710:1;12701:10;;12724:5;;;12748:130;12785:3;12775:8;12772:17;12769:43;;;12792:18;;:::i;:::-;-1:-1:-1;;12848:1:1;12834:16;;12863:5;;12660:218;;12962:2;12952:8;12949:16;12943:3;12937:4;12934:13;12930:36;12924:2;12914:8;12911:16;12906:2;12900:4;12897:12;12893:35;12890:77;12887:159;;;-1:-1:-1;12999:19:1;;;13031:5;;12887:159;13078:34;13103:8;13097:4;13078:34;:::i;:::-;13208:6;-1:-1:-1;;13136:79:1;13127:7;13124:92;13121:118;;;13219:18;;:::i;:::-;13257:20;;12417:866;-1:-1:-1;;;12417:866:1:o;13288:140::-;13346:5;13375:47;13416:4;13406:8;13402:19;13396:4;13375:47;:::i;13433:274::-;13473:1;13499;13489:189;;13534:77;13531:1;13524:88;13635:4;13632:1;13625:15;13663:4;13660:1;13653:15;13489:189;-1:-1:-1;13692:9:1;;13433:274::o;13712:228::-;13752:7;13878:1;-1:-1:-1;;13806:74:1;13803:1;13800:81;13795:1;13788:9;13781:17;13777:105;13774:131;;;13885:18;;:::i;:::-;-1:-1:-1;13925:9:1;;13712:228::o;13945:125::-;13985:4;14013:1;14010;14007:8;14004:34;;;14018:18;;:::i;:::-;-1:-1:-1;14055:9:1;;13945:125::o;14844:184::-;14896:77;14893:1;14886:88;14993:4;14990:1;14983:15;15017:4;15014:1;15007:15;15033:175;15070:3;15114:4;15107:5;15103:16;15143:4;15134:7;15131:17;15128:43;;;15151:18;;:::i;:::-;15200:1;15187:15;;15033:175;-1:-1:-1;;15033:175:1:o;16001:128::-;16041:3;16072:1;16068:6;16065:1;16062:13;16059:39;;;16078:18;;:::i;:::-;-1:-1:-1;16114:9:1;;16001:128::o;16988:184::-;17058:6;17111:2;17099:9;17090:7;17086:23;17082:32;17079:52;;;17127:1;17124;17117:12;17079:52;-1:-1:-1;17150:16:1;;16988:184;-1:-1:-1;16988:184:1:o;19726:224::-;19765:3;19793:6;19826:2;19823:1;19819:10;19856:2;19853:1;19849:10;19887:3;19883:2;19879:12;19874:3;19871:21;19868:47;;;19895:18;;:::i;:::-;19931:13;;19726:224;-1:-1:-1;;;;19726:224:1:o;19955:251::-;20025:6;20078:2;20066:9;20057:7;20053:23;20049:32;20046:52;;;20094:1;20091;20084:12;20046:52;20126:9;20120:16;20145:31;20170:5;20145:31;:::i;20900:245::-;20967:6;21020:2;21008:9;20999:7;20995:23;20991:32;20988:52;;;21036:1;21033;21026:12;20988:52;21068:9;21062:16;21087:28;21109:5;21087:28;:::i;23891:1026::-;24153:4;24201:3;24190:9;24186:19;24232:6;24221:9;24214:25;24258:2;24296:6;24291:2;24280:9;24276:18;24269:34;24339:3;24334:2;24323:9;24319:18;24312:31;24363:6;24398;24392:13;24429:6;24421;24414:22;24467:3;24456:9;24452:19;24445:26;;24506:2;24498:6;24494:15;24480:29;;24527:1;24537:218;24551:6;24548:1;24545:13;24537:218;;;24616:13;;-1:-1:-1;;;;;24612:62:1;24600:75;;24730:15;;;;24695:12;;;;24573:1;24566:9;24537:218;;;-1:-1:-1;;;;;;;24811:55:1;;;;24806:2;24791:18;;24784:83;-1:-1:-1;;;24898:3:1;24883:19;24876:35;24772:3;23891:1026;-1:-1:-1;;;23891:1026:1:o
Swarm Source
ipfs://c0c40bfee5405c4ce3896d00b1d109740ea49cc50e24d90ab47ad3ce01a77192
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.