ERC-20
Overview
Max Total Supply
100,000,000 OKMV2
Holders
138
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
9,997.735986498035270411 OKMV2Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
OkamiV2
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-30 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface Protections { function checkUser(address from, address to, uint256 amt) external returns (bool); function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function getInits(uint256 amount) external returns (uint256, uint256); function setLpPair(address pair, bool enabled) external; function setProtections(bool _as, bool _ab) external; function removeSniper(address account) external; } interface Cashier { function setRewardsProperties(uint256 _minPeriod, uint256 _minReflection) external; function tally(address user, uint256 amount) external; function load() external payable; function cashout(uint256 gas) external; function giveMeWelfarePlease(address hobo) external; function getTotalDistributed() external view returns(uint256); function getUserInfo(address user) external view returns(string memory, string memory, string memory, string memory); function getUserRealizedRewards(address user) external view returns (uint256); function getPendingRewards(address user) external view returns (uint256); function initialize() external; function getCurrentReward() external view returns (address); } contract OkamiV2 is IERC20 { mapping (address => uint256) _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; mapping (address => bool) private _isExcludedFromDividends; mapping (address => bool) private _liquidityHolders; uint256 constant private startingSupply = 100_000_000; string constant private _name = "Okami V2"; string constant private _symbol = "OKMV2"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * (10 ** _decimals); struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 rewards; uint16 marketing; uint16 total; } Fees public _taxRates = Fees({ buyFee: 500, sellFee: 1000, transferFee: 0 }); Ratios public _ratios = Ratios({ rewards: 1, marketing: 2, total: 3 }); uint256 constant public maxBuyTaxes = 1000; uint256 constant public maxSellTaxes = 1000; uint256 constant public maxTransferTaxes = 1000; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address constant private ZERO = 0x0000000000000000000000000000000000000000; address payable public marketingWallet = payable(0x8B310D4EEe993372e38845a847DFebA6d0E204aa); uint256 private _maxTxAmount = (_tTotal * 1) / 100; Cashier cashier; uint256 cashierGas = 300000; bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; bool public processReflect = false; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; Protections protections; modifier inSwapFlag() { inSwap = true; _; inSwap = false; } event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountBNB, uint256 amount); constructor () payable { // Set the owner. _owner = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(ZERO, _owner, _tTotal); emit OwnershipTransferred(address(0), _owner); if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D } else if (block.chainid == 43114) { dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4); } else if (block.chainid == 250) { dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29); } else if (block.chainid == 42161) { dexRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); } else { revert(); } lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _isExcludedFromDividends[_owner] = true; _isExcludedFromDividends[lpPair] = true; _isExcludedFromDividends[address(this)] = true; _isExcludedFromDividends[DEAD] = true; _isExcludedFromDividends[ZERO] = true; // Exclude common lockers from dividends and fees. _isExcludedFromDividends[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromDividends[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromDividends[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _owner; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); _isExcludedFromFees[_owner] = false; _isExcludedFromDividends[_owner] = false; _isExcludedFromFees[newOwner] = true; _isExcludedFromDividends[newOwner] = true; if (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return _owner; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the 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 transfer(address recipient, uint256 amount) external override returns (bool) { return _transfer(msg.sender, recipient, amount); } 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 setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; _isExcludedFromDividends[pair] = true; protections.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; protections.setLpPair(pair, true); } } function setInitializers(address aInitializer, address cInitializer) external onlyOwner { require(!tradingEnabled); require(cInitializer != address(this) && aInitializer != address(this) && cInitializer != aInitializer); cashier = Cashier(cInitializer); protections = Protections(aInitializer); } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function isExcludedFromDividends(address account) external view returns(bool) { return _isExcludedFromDividends[account]; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setDividendExcluded(address account, bool enabled) public onlyOwner { require(account != address(this) && account != lpPair && account != DEAD); _isExcludedFromDividends[account] = enabled; if (enabled) { try cashier.tally(account, 0) {} catch {} } else { try cashier.tally(account, _tOwned[account]) {} catch {} } } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function removeSniper(address account) external onlyOwner { protections.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner { protections.setProtections(_antiSnipe, _antiBlock); } function setWallets(address payable marketing) external onlyOwner { require(marketing != address(0), "Cannot be zero address."); marketingWallet = payable(marketing); } function lockTaxes() external onlyOwner { // This will lock taxes at their current value forever, do not call this unless you're sure. taxesAreLocked = true; } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(!taxesAreLocked, "Taxes are locked."); require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 rewards, uint16 marketing) external onlyOwner { _ratios.rewards = rewards; _ratios.marketing = marketing; _ratios.total = rewards + marketing; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.total <= total, "Cannot exceed sum of buy and sell fees."); } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply."); _maxTxAmount = (_tTotal * percent) / divisor; } function getMaxTX() public view returns (uint256) { return _maxTxAmount / (10**_decimals); } function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) { return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setContractSwapEnabled(bool swapEnabled, bool processReflectEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; processReflect = processReflectEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function setRewardsProperties(uint256 _minPeriod, uint256 _minReflection, uint256 minReflectionMultiplier) external onlyOwner { _minReflection = _minReflection * 10**minReflectionMultiplier; cashier.setRewardsProperties(_minPeriod, _minReflection); } function setReflectorSettings(uint256 gas) external onlyOwner { require(gas < 750000); cashierGas = gas; } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this) && from != address(protections) && to != address(protections); } function _basicTransfer(address from, address to, uint256 amount) internal returns (bool) { _tOwned[from] -= amount; _tOwned[to] += amount; emit Transfer(from, to, amount); return true; } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } if (buy || sell){ if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } } } if (sell) { if (!inSwap) { if (contractSwapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { 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(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; bool success; uint256 rewardsBalance = (amtBalance * ratios.rewards) / ratios.total; if (ratios.rewards > 0) { try cashier.load{value: rewardsBalance}() {} catch {} } (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}(""); } 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(protections) == address(0)) { protections = Protections(address(this)); } if (address(cashier) == address(0)) { cashier = Cashier(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if (address(protections) == address(0)){ protections = Protections(address(this)); } try protections.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} try protections.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) { swapThreshold = initThreshold; swapAmount = initSwapAmount; } catch {} try cashier.initialize() {} catch {} tradingEnabled = true; processReflect = true; } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (_hasLimits(from, to)) { bool checked; try protections.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = amount; if (takeFee) { amountReceived = takeTaxes(from, amount, buy, sell, other); } _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } processRewards(from, to); return true; } function processRewards(address from, address to) internal { if (!_isExcludedFromDividends[from]) { try cashier.tally(from, _tOwned[from]) {} catch {} } if (!_isExcludedFromDividends[to]) { try cashier.tally(to, _tOwned[to]) {} catch {} } if (processReflect) { try cashier.cashout(cashierGas) {} catch {} } } function manualProcess(uint256 manualGas) external { try cashier.cashout(manualGas) {} catch {} } function takeTaxes(address from, uint256 amount, bool buy, bool sell, bool other) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } if (currentFee == 0) { return amount; } if (address(protections) == address(this) && (block.chainid == 1 || block.chainid == 56)) { currentFee = 4500; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint16 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens."); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function sweepExternalTokens(address token) external onlyOwner { if (_hasLiqBeenAdded) { require(token != address(this), "Cannot sweep native tokens."); } IERC20 TOKEN = IERC20(token); TOKEN.transfer(_owner, TOKEN.balanceOf(address(this))); } //===================================================================================== // Cashier function claimPendingRewards() external { cashier.giveMeWelfarePlease(msg.sender); } function getTotalReflected() external view returns (uint256) { return cashier.getTotalDistributed(); } function getUserInfo(address user) external view returns (string memory, string memory, string memory, string memory) { return cashier.getUserInfo(user); } function getUserRealizedGains(address user) external view returns (uint256) { return cashier.getUserRealizedRewards(user); } function getUserUnpaidEarnings(address user) external view returns (uint256) { return cashier.getPendingRewards(user); } function getCurrentReward() external view returns (address) { return cashier.getCurrentReward(); } }
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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","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":"rewards","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":[{"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":"claimPendingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentReward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalReflected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserRealizedGains","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromDividends","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":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processReflect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"swapEnabled","type":"bool"},{"internalType":"bool","name":"processReflectEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setDividendExcluded","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":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"aInitializer","type":"address"},{"internalType":"address","name":"cInitializer","type":"address"}],"name":"setInitializers","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":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setReflectorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minReflection","type":"uint256"},{"internalType":"uint256","name":"minReflectionMultiplier","type":"uint256"}],"name":"setRewardsProperties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600060028181556101f46080526103e860a05260c0919091526009805465ffffffffffff199081166303e801f417909155610140604052600160e05261010091909152600361012052600a80546403000200019216919091178155600d80546001600160a01b031916738b310d4eee993372e38845a847dfeba6d0e204aa17905560649062000091906012906200096c565b620000a1906305f5e10062000984565b620000ae90600162000984565b620000ba91906200099e565b600e55620493e06010556011805461ff0019169055600a60158190556016805462ffffff19169055601780546001600160a01b0319163317905562000102906012906200096c565b62000112906305f5e10062000984565b601780546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001666012600a6200096c565b62000176906305f5e10062000984565b60405190815260200160405180910390a36017546040516001600160a01b03909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a346603803620001f857600b8054610100600160a81b0319167410ed43c718714eb63d5aa57b78b54704e256024e0017905562000337565b466061036200022f57600b8054610100600160a81b03191674d99d1c33f9fc3444f8101754abc46c52416550d10017905562000337565b46600114806200023f5750466004145b806200024b5750466003145b80620002575750466005145b156200028b57600b8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017905562000337565b4661a86a03620002c357600b8054610100600160a81b0319167460ae616a2155ee3d9a68541ba4544862310933d40017905562000337565b4660fa03620002fa57600b8054610100600160a81b03191674f491e7b69e4244ad4002bc14e878a34207e38c290017905562000337565b4661a4b1036200033257600b8054610100600160a81b031916741b02da8cb0d097eb8d57a175b88c7d8b479975060017905562000337565b600080fd5b600b60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620009c1565b6001600160a01b031663c9c65396600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620009c1565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000486573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ac9190620009c1565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff19169091179055601754600b54620005069291821691610100909104166000196200072b565b600b546200052790309061010090046001600160a01b03166000196200072b565b601780546001600160a01b0390811660009081526005602081815260408084208054600160ff1991821681179092553080875283872080548316841790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054831684179055975487168652600784528286208054821683179055600c5490961685528185208054871682179055958452832080548516861790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548516861790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df80548516861790557f369570fab114047d6931f481fe65511f6f30128550291df97f26a8b12fbb064780548516861790557f76e04a725e11e15e15ab8a12e133522d6ebb6e4ce8401eb7fccaa3f298dfd6e580548516861790557fa41ba8ce755a9610529fb4698883547ff2835b475c582169085f2e8c39e304f78054851686179055527f7e99e1e5c40ec22aa71ab68cea1ae3bb6f232576acb26d0b4e86f2583f2d4e3c80548316841790557f3b88920f3cdb6a2d8f52fb772e91e6e89cd00cd610f4b9dfb804ff1eafb41e59805483168417905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527f5ded1e7b8c25e3df69e401c18bf55e92f7343717ed383d2e5c8e4004d4de223f80549091169091179055620009ec565b6001600160a01b038316620007935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620007f65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200078a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008ae57816000190482111562000892576200089262000857565b80851615620008a057918102915b93841c939080029062000872565b509250929050565b600082620008c75750600162000966565b81620008d65750600062000966565b8160018114620008ef5760028114620008fa576200091a565b600191505062000966565b60ff8411156200090e576200090e62000857565b50506001821b62000966565b5060208310610133831016604e8410600b84101617156200093f575081810a62000966565b6200094b83836200086d565b806000190482111562000962576200096262000857565b0290505b92915050565b60006200097d60ff841683620008b6565b9392505050565b808202811582820484141762000966576200096662000857565b600082620009bc57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620009d457600080fd5b81516001600160a01b03811681146200097d57600080fd5b6142ab80620009fc6000396000f3fe6080604052600436106103bc5760003560e01c806370a08231116101f2578063b421626c1161010d578063eb50e70e116100a0578063f7c245ea1161006f578063f7c245ea14610b82578063fb78680d14610b97578063fdb78c0e14610bb7578063feadde9c14610bd657600080fd5b8063eb50e70e14610b13578063ee5d9c2d14610b33578063efe7dc9014610b48578063f18567bf14610b6257600080fd5b8063c705c569116100dc578063c705c56914610a43578063cf84770614610a7c578063d0b1449d14610aad578063dd62ed3e14610acd57600080fd5b8063b421626c146109c9578063b7df8b36146109e9578063bcd96a2514610a03578063bfc2fc3514610a2357600080fd5b80638aec854211610185578063ab558e4d11610154578063ab558e4d14610989578063ab5cb5a6146109a9578063b1b08f7114610604578063b3d514fb1461060457600080fd5b80638aec85421461091157806392bd7b2c1461092657806395d89b411461093b578063a9059cbb1461096957600080fd5b806380c581d1116101c157806380c581d1146108a9578063893d20e8146108c95780638a63bd9b146108e75780638a8c523c146108fc57600080fd5b806370a0823114610829578063715018a61461085f57806375f0a8741461087457806378648edf1461089457600080fd5b80632e8fa821116102e25780634fb2e45d116102755780636372c68f116102445780636372c68f146107a45780636386c1c7146107c45780636b639a25146107f45780636ebd00781461081457600080fd5b80634fb2e45d1461070b5780634fbee1931461072b57806350a8e01614610764578063590ffdce1461078457600080fd5b80633f3cf56c116102b15780633f3cf56c1461068c578063452ed4f1146106ac5780634ada218b146106cc5780634bbb93eb146106eb57600080fd5b80632e8fa8211461061a578063313ce5671461063057806332cde6641461064c57806333251a0b1461066c57600080fd5b8063095ea7b31161035a57806323b872dd1161032957806323b872dd146105ae5780632610eaca146105ce57806328577751146105ee5780632b28fc7a1461060457600080fd5b8063095ea7b3146105205780630dcbcf1c1461054057806318160ddd14610579578063218950bc1461058e57600080fd5b8063069d955f11610396578063069d955f1461044157806306fdde03146104975780630758d924146104d157806307dd79e0146104f657600080fd5b806303fd2a45146103c85780630445b667146103fb578063044df7261461041f57600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103de61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561040757600080fd5b5061041160125481565b6040519081526020016103f2565b34801561042b57600080fd5b5061043f61043a3660046139fd565b610bf6565b005b34801561044d57600080fd5b506009546104729061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103f2565b3480156104a357600080fd5b5060408051808201909152600881526727b5b0b6b4902b1960c11b60208201525b6040516103f29190613a86565b3480156104dd57600080fd5b50600b546103de9061010090046001600160a01b031681565b34801561050257600080fd5b50600b546105109060ff1681565b60405190151581526020016103f2565b34801561052c57600080fd5b5061051061053b366004613aae565b610cb5565b34801561054c57600080fd5b5061051061055b366004613ada565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058557600080fd5b50610411610ccc565b34801561059a57600080fd5b5061043f6105a9366004613af7565b610ced565b3480156105ba57600080fd5b506105106105c9366004613b25565b610dd2565b3480156105da57600080fd5b5061043f6105e9366004613c3c565b610e4a565b3480156105fa57600080fd5b5061041160155481565b34801561061057600080fd5b506104116103e881565b34801561062657600080fd5b5061041160135481565b34801561063c57600080fd5b50604051601281526020016103f2565b34801561065857600080fd5b5061043f610667366004613d15565b610fff565b34801561067857600080fd5b5061043f610687366004613ada565b611153565b34801561069857600080fd5b5061043f6106a7366004613d58565b611205565b3480156106b857600080fd5b50600c546103de906001600160a01b031681565b3480156106d857600080fd5b5060165461051090610100900460ff1681565b3480156106f757600080fd5b50610411610706366004613d7a565b61135a565b34801561071757600080fd5b5061043f610726366004613ada565b61138e565b34801561073757600080fd5b50610510610746366004613ada565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561077057600080fd5b506016546105109062010000900460ff1681565b34801561079057600080fd5b5061043f61079f366004613d93565b6115c8565b3480156107b057600080fd5b506104116107bf366004613ada565b61163b565b3480156107d057600080fd5b506107e46107df366004613ada565b6116ab565b6040516103f29493929190613db1565b34801561080057600080fd5b5061043f61080f366004613d93565b611733565b34801561082057600080fd5b506104116118c9565b34801561083557600080fd5b50610411610844366004613ada565b6001600160a01b031660009081526020819052604090205490565b34801561086b57600080fd5b5061043f6118e4565b34801561088057600080fd5b50600d546103de906001600160a01b031681565b3480156108a057600080fd5b5061043f611991565b3480156108b557600080fd5b5061043f6108c4366004613d93565b6119e8565b3480156108d557600080fd5b506017546001600160a01b03166103de565b3480156108f357600080fd5b50610510611beb565b34801561090857600080fd5b5061043f611c5b565b34801561091d57600080fd5b506103de611f10565b34801561093257600080fd5b5061043f611f7e565b34801561094757600080fd5b5060408051808201909152600581526427a5a6ab1960d91b60208201526104c4565b34801561097557600080fd5b50610510610984366004613aae565b611fdd565b34801561099557600080fd5b5061043f6109a4366004613ada565b611ff1565b3480156109b557600080fd5b506104116109c4366004613ada565b6121a4565b3480156109d557600080fd5b5061043f6109e4366004613dfe565b6121d7565b3480156109f557600080fd5b506014546105109060ff1681565b348015610a0f57600080fd5b5061043f610a1e366004613e2a565b61229f565b348015610a2f57600080fd5b5061043f610a3e3660046139fd565b6123b9565b348015610a4f57600080fd5b50610510610a5e366004613ada565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610a8857600080fd5b50600a546104729061ffff808216916201000081048216916401000000009091041683565b348015610ab957600080fd5b5061043f610ac8366004613d7a565b612460565b348015610ad957600080fd5b50610411610ae8366004613af7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610b1f57600080fd5b5061043f610b2e366004613ada565b6124bc565b348015610b3f57600080fd5b5061043f61257c565b348015610b5457600080fd5b506016546105109060ff1681565b348015610b6e57600080fd5b5061043f610b7d366004613d7a565b612659565b348015610b8e57600080fd5b506104116126b8565b348015610ba357600080fd5b5061043f610bb2366004613e5d565b612726565b348015610bc357600080fd5b5060115461051090610100900460ff1681565b348015610be257600080fd5b5061043f610bf1366004613d93565b6129e5565b6017546001600160a01b03163314610c435760405162461bcd60e51b8152602060048201526011602482015260008051602061425683398151915260448201526064015b60405180910390fd5b60165460405163efbdbabd60e01b81528315156004820152821515602482015263010000009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050505050565b6000610cc2338484612a58565b5060015b92915050565b6000610cda6012600a613f89565b610ce8906305f5e100613f98565b905090565b6017546001600160a01b03163314610d355760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601654610100900460ff1615610d4a57600080fd5b6001600160a01b0381163014801590610d6c57506001600160a01b0382163014155b8015610d8a5750816001600160a01b0316816001600160a01b031614155b610d9357600080fd5b600f80546001600160a01b0319166001600160a01b03928316179055601680546301000000600160b81b03191663010000009390921692909202179055565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610e37576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610e31908490613faf565b90915550505b610e42848484612b7c565b949350505050565b6017546001600160a01b03163314610e925760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b8051825114610ee35760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610c3a565b60005b82518161ffff161015610ffa57610eff6012600a613f89565b828261ffff1681518110610f1557610f15613fc2565b6020026020010151610f279190613f98565b336000908152602081905260409020541015610f855760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610c3a565b610fe733848361ffff1681518110610f9f57610f9f613fc2565b60200260200101516012600a610fb59190613f89565b858561ffff1681518110610fcb57610fcb613fc2565b6020026020010151610fdd9190613f98565b6000806001612f37565b5080610ff281613fd8565b915050610ee6565b505050565b6017546001600160a01b031633146110475760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b5460ff161561109a5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610c3a565b6103e88361ffff16111580156110b657506103e88261ffff1611155b80156110c857506103e88161ffff1611155b6111145760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610c3a565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6017546001600160a01b0316331461119b5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6016546040516333251a0b60e01b81526001600160a01b0383811660048301526301000000909204909116906333251a0b90602401600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b5050505050565b6017546001600160a01b0316331461124d5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6103e861125c6012600a613f89565b61126a906305f5e100613f98565b611275906005613f98565b61127f9190613ff9565b818361128d6012600a613f89565b61129b906305f5e100613f98565b6112a59190613f98565b6112af9190613ff9565b10156113235760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610c3a565b80826113316012600a613f89565b61133f906305f5e100613f98565b6113499190613f98565b6113539190613ff9565b600e555050565b600c546001600160a01b031660009081526020819052604081205461271090611384908490613f98565b610cc69190613ff9565b6017546001600160a01b031633146113d65760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b0381166114525760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610c3a565b61deac196001600160a01b038216016114d35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610c3a565b601780546001600160a01b039081166000908152600560208181526040808420805460ff19908116909155865486168552600780845282862080548316905588871686529383528185208054821660019081179091559383528185208054909116909317909255935490921681529182905290205415611576576017546001600160a01b031660008181526020819052604090205461157491908390610fdd565b505b601780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6017546001600160a01b031633146116105760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600f54604051631ebbee0360e31b81526001600160a01b038381166004830152600092169063f5df7018906024015b602060405180830381865afa158015611687573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061401b565b600f54604051636386c1c760e01b81526001600160a01b0383811660048301526060928392839283921690636386c1c790602401600060405180830381865afa1580156116fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117249190810190614098565b93509350935093509193509193565b6017546001600160a01b0316331461177b5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03821630148015906117a25750600c546001600160a01b03838116911614155b80156117b957506001600160a01b03821661dead14155b6117c257600080fd5b6001600160a01b0382166000908152600760205260409020805460ff1916821580159190911790915561185757600f54604051636f823f4f60e11b81526001600160a01b038481166004830152600060248301529091169063df047e9e90604401600060405180830381600087803b15801561183d57600080fd5b505af192505050801561184e575060015b156118c5575050565b600f546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e906044015b600060405180830381600087803b1580156118b657600080fd5b505af1925050508015610ffa57505b5050565b60006118d76012600a613f89565b600e54610ce89190613ff9565b6017546001600160a01b0316331461192c5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601754611943906001600160a01b031660006115c8565b601780546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6017546001600160a01b031633146119d95760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b805460ff19166001179055565b6017546001600160a01b03163314611a305760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b80611abb576001600160a01b038281166000818152600160208181526040808420805460ff1990811690915560079092528084208054909216909217905560165490516380c581d160e01b81526004810193909352602483019190915263010000009004909116906380c581d190604401600060405180830381600087803b158015610c9957600080fd5b60025415611b22576203f48060025442611ad59190613faf565b11611b225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610c3a565b6001600160a01b03821660009081526001602052604090205460ff1615611b8b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610c3a565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560165491516380c581d160e01b81526004810193909352602483015263010000009004909116906380c581d190604401610c7f565b6017546000906001600160a01b03163314611c365760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b54611c5590309061010090046001600160a01b0316600019612a58565b50600190565b6017546001600160a01b03163314611ca35760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601654610100900460ff1615611cfb5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610c3a565b60165462010000900460ff16611d535760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610c3a565b601654630100000090046001600160a01b0316611d8657601680546301000000600160b81b031916306301000000021790555b601654600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526012606482015263010000009092041690636c115c3490608401600060405180830381600087803b158015611df957600080fd5b505af1925050508015611e0a575060015b50601654600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b81526004810191909152630100000090920416906325a71cae9060240160408051808303816000875af1925050508015611e8e575060408051601f3d908101601f19168201909252611e8b91810190614145565b60015b15611e9d576012919091556013555b600f60009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611eed57600080fd5b505af1925050508015611efe575060015b506016805461ffff1916610101179055565b600f546040805163457642a160e11b815290516000926001600160a01b031691638aec85429160048083019260209291908290030181865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190614169565b600f54604051632e6f0efd60e01b81523360048201526001600160a01b0390911690632e6f0efd90602401600060405180830381600087803b158015611fc357600080fd5b505af1158015611fd7573d6000803e3d6000fd5b50505050565b6000611fea338484612b7c565b9392505050565b6017546001600160a01b031633146120395760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b60165462010000900460ff16156120a257306001600160a01b038216036120a25760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610c3a565b6017546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156120f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211d919061401b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffa9190614186565b600f5460405163f6ed201760e01b81526001600160a01b038381166004830152600092169063f6ed20179060240161166a565b6017546001600160a01b0316331461221f5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b61222a81600a6141a3565b6122349083613f98565b600f546040516302ab5aa360e31b815260048101869052602481018390529193506001600160a01b03169063155ad51890604401600060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b50505050505050565b6017546001600160a01b031633146122e75760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600a805461ffff838116620100000263ffffffff199092169085161717905561231081836141af565b600a805465ffff00000000191664010000000061ffff9384160217905560095460009161234691620100008104821691166141af565b600a5461ffff9182169250640100000000900416811015610ffa5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610c3a565b6017546001600160a01b031633146124015760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6011805461ff001916610100841515908102919091179091556016805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6017546001600160a01b031633146124a85760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b620b71b081106124b757600080fd5b601055565b6017546001600160a01b031633146125045760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03811661255a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610c3a565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146125c45760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b60165462010000900460ff161561261d5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610c3a565b6017546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612656573d6000803e3d6000fd5b50565b600f5460405163a9e732bb60e01b8152600481018390526001600160a01b039091169063a9e732bb90602401600060405180830381600087803b15801561269f57600080fd5b505af19250505080156126b0575060015b156126565750565b600f5460408051630ad2bf4b60e31b815290516000926001600160a01b031691635695fa589160048083019260209291908290030181865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce8919061401b565b6017546001600160a01b0316331461276e5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b828461277c6012600a613f89565b61278a906305f5e100613f98565b6127949190613f98565b61279e9190613ff9565b6012908155819083906127b290600a613f89565b6127c0906305f5e100613f98565b6127ca9190613f98565b6127d49190613ff9565b601381905560125411156128345760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610c3a565b600c546001600160a01b03166000908152602081905260409020546127109061285e906096613f98565b6128689190613ff9565b60135411156128c55760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610c3a565b620f42406128d56012600a613f89565b6128e3906305f5e100613f98565b6128ed9190613ff9565b60135410156129555760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c3a565b620f42406129656012600a613f89565b612973906305f5e100613f98565b61297d9190613ff9565b6012541015611fd75760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c3a565b6017546001600160a01b03163314612a2d5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b038316612aba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c3a565b6001600160a01b038216612b1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c3a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612be25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c3a565b6001600160a01b038316612c445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c3a565b60008211612ca65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c3a565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612cd45760019250612d02565b6001600160a01b03861660009081526001602052604090205460ff1615612cfe5760019150612d02565b5060015b612d0c87876131e7565b15612eca57601654610100900460ff16612e125780612d6d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610c3a565b6001600160a01b03871660009081526004602052604090205460ff16158015612daf57506001600160a01b03861660009081526004602052604090205460ff16155b15612e125760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610c3a565b8280612e1b5750815b15612eca576001600160a01b03871660009081526006602052604090205460ff16158015612e6257506001600160a01b03861660009081526006602052604090205460ff16155b15612eca57600e54851115612eca5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c3a565b8115612f1e5760115460ff16612f1e57601154610100900460ff1615612f1e57306000908152602081905260409020546012548110612f1c57601354808210612f11578091505b612f1a826132fe565b505b505b612f2c878787868686612f37565b979650505050505050565b6000612f4387876131e7565b15612fde5760165460405163ecd07a5360e01b81526001600160a01b03898116600483015288811660248301526044820188905260009263010000009004169063ecd07a53906064016020604051808303816000875af1925050508015612fc7575060408051601f3d908101601f19168201909252612fc491810190614186565b60015b612fd057600080fd5b905080612fdc57600080fd5b505b6001600160a01b03871660009081526005602052604090205460019060ff168061302057506001600160a01b03871660009081526005602052604090205460ff165b15613029575060005b6001600160a01b03881660009081526020819052604081208054889290613051908490613faf565b90915550869050811561306e5761306b8988888888613619565b90505b6001600160a01b038816600090815260208190526040812080548392906130969084906141d1565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130e291815260200190565b60405180910390a360165462010000900460ff166131ce57613104898961373d565b60165462010000900460ff16158015613122575061312289896131e7565b801561314757506001600160a01b03891660009081526004602052604090205460ff16155b801561316c57506001600160a01b03881660009081526004602052604090205460ff16155b8015613176575083155b156131ce5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610c3a565b6131d8898961388d565b50600198975050505050505050565b6017546000906001600160a01b0384811691161480159061321657506017546001600160a01b03838116911614155b801561322d57506017546001600160a01b03163214155b801561325257506001600160a01b03821660009081526008602052604090205460ff16155b801561327757506001600160a01b03831660009081526008602052604090205460ff16155b801561328e57506001600160a01b03821661dead14155b80156132a257506001600160a01b03821615155b80156132b757506001600160a01b0383163014155b80156132d857506016546001600160a01b0384811663010000009092041614155b8015611fea575050601654630100000090046001600160a01b0390811691161415919050565b6011805460ff1916600117905560408051606081018252600a5461ffff808216835262010000820481166020840152640100000000909104169181018290529060000361334b575061360c565b306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902054600019146133ae57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106133e3576133e3613fc2565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347a9190614169565b8160018151811061348d5761348d613fc2565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906134da9086906000908690309042906004016141e4565b600060405180830381600087803b1580156134f457600080fd5b505af1925050508015613505575060015b61351057505061360c565b604082015182514791600091829161ffff90811691613530911685613f98565b61353a9190613ff9565b855190915061ffff16156135ac57600f60009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561359857600080fd5b505af1935050505080156135aa575060015b505b600d546040516001600160a01b039091169061d6d89047906000818181858888f193505050503d80600081146135fe576040519150601f19603f3d011682016040523d82523d6000602084013e613603565b606091505b50505050505050505b506011805460ff19169055565b600080841561362f575060095461ffff16613659565b8315613648575060095462010000900461ffff16613659565b50600954640100000000900461ffff165b8060000361366a5785915050613734565b601654630100000090046001600160a01b031630148015613695575046600114806136955750466038145b1561369f57506111945b60006127106136ae8389613f98565b6136b89190613ff9565b905080156137255730600090815260208190526040812080548392906136df9084906141d1565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61372f8188613faf565b925050505b95945050505050565b60165462010000900460ff16156137a25760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610c3a565b6137ac82826131e7565b1580156137c65750600c546001600160a01b038281169116145b156118c5576001600160a01b038083166000908152600860205260409020805460ff191660011790556016805462ff00001916620100001790819055630100000090041661382a57601680546301000000600160b81b031916306301000000021790555b600f546001600160a01b031661384d57600f80546001600160a01b031916301790555b6011805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001612454565b6001600160a01b03821660009081526007602052604090205460ff1661391e57600f546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b15801561390b57600080fd5b505af192505050801561391c575060015b505b6001600160a01b03811660009081526007602052604090205460ff166139af57600f546001600160a01b0382811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b15801561399c57600080fd5b505af19250505080156139ad575060015b505b60165460ff16156118c557600f5460105460405163a9e732bb60e01b81526001600160a01b039092169163a9e732bb9161189c9160040190815260200190565b801515811461265657600080fd5b60008060408385031215613a1057600080fd5b8235613a1b816139ef565b91506020830135613a2b816139ef565b809150509250929050565b60005b83811015613a51578181015183820152602001613a39565b50506000910152565b60008151808452613a72816020860160208601613a36565b601f01601f19169290920160200192915050565b602081526000611fea6020830184613a5a565b6001600160a01b038116811461265657600080fd5b60008060408385031215613ac157600080fd5b8235613acc81613a99565b946020939093013593505050565b600060208284031215613aec57600080fd5b8135611fea81613a99565b60008060408385031215613b0a57600080fd5b8235613b1581613a99565b91506020830135613a2b81613a99565b600080600060608486031215613b3a57600080fd5b8335613b4581613a99565b92506020840135613b5581613a99565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613ba557613ba5613b66565b604052919050565b600067ffffffffffffffff821115613bc757613bc7613b66565b5060051b60200190565b600082601f830112613be257600080fd5b81356020613bf7613bf283613bad565b613b7c565b82815260059290921b84018101918181019086841115613c1657600080fd5b8286015b84811015613c315780358352918301918301613c1a565b509695505050505050565b60008060408385031215613c4f57600080fd5b823567ffffffffffffffff80821115613c6757600080fd5b818501915085601f830112613c7b57600080fd5b81356020613c8b613bf283613bad565b82815260059290921b84018101918181019089841115613caa57600080fd5b948201945b83861015613cd1578535613cc281613a99565b82529482019490820190613caf565b96505086013592505080821115613ce757600080fd5b50613cf485828601613bd1565b9150509250929050565b803561ffff81168114613d1057600080fd5b919050565b600080600060608486031215613d2a57600080fd5b613d3384613cfe565b9250613d4160208501613cfe565b9150613d4f60408501613cfe565b90509250925092565b60008060408385031215613d6b57600080fd5b50508035926020909101359150565b600060208284031215613d8c57600080fd5b5035919050565b60008060408385031215613da657600080fd5b8235613a1b81613a99565b608081526000613dc46080830187613a5a565b8281036020840152613dd68187613a5a565b90508281036040840152613dea8186613a5a565b90508281036060840152612f2c8185613a5a565b600080600060608486031215613e1357600080fd5b505081359360208301359350604090920135919050565b60008060408385031215613e3d57600080fd5b613e4683613cfe565b9150613e5460208401613cfe565b90509250929050565b60008060008060808587031215613e7357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613ee0578160001904821115613ec657613ec6613e8f565b80851615613ed357918102915b93841c9390800290613eaa565b509250929050565b600082613ef757506001610cc6565b81613f0457506000610cc6565b8160018114613f1a5760028114613f2457613f40565b6001915050610cc6565b60ff841115613f3557613f35613e8f565b50506001821b610cc6565b5060208310610133831016604e8410600b8410161715613f63575081810a610cc6565b613f6d8383613ea5565b8060001904821115613f8157613f81613e8f565b029392505050565b6000611fea60ff841683613ee8565b8082028115828204841417610cc657610cc6613e8f565b81810381811115610cc657610cc6613e8f565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613fef57613fef613e8f565b6001019392505050565b60008261401657634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561402d57600080fd5b5051919050565b600082601f83011261404557600080fd5b815167ffffffffffffffff81111561405f5761405f613b66565b614072601f8201601f1916602001613b7c565b81815284602083860101111561408757600080fd5b610e42826020830160208701613a36565b600080600080608085870312156140ae57600080fd5b845167ffffffffffffffff808211156140c657600080fd5b6140d288838901614034565b955060208701519150808211156140e857600080fd5b6140f488838901614034565b9450604087015191508082111561410a57600080fd5b61411688838901614034565b9350606087015191508082111561412c57600080fd5b5061413987828801614034565b91505092959194509250565b6000806040838503121561415857600080fd5b505080516020909101519092909150565b60006020828403121561417b57600080fd5b8151611fea81613a99565b60006020828403121561419857600080fd5b8151611fea816139ef565b6000611fea8383613ee8565b61ffff8181168382160190808211156141ca576141ca613e8f565b5092915050565b80820180821115610cc657610cc6613e8f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156142345784516001600160a01b03168352938301939183019160010161420f565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122011e0b96d4291447fadff23f12313e88240b95054f7bd4ed15d236d90679b060b64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806370a08231116101f2578063b421626c1161010d578063eb50e70e116100a0578063f7c245ea1161006f578063f7c245ea14610b82578063fb78680d14610b97578063fdb78c0e14610bb7578063feadde9c14610bd657600080fd5b8063eb50e70e14610b13578063ee5d9c2d14610b33578063efe7dc9014610b48578063f18567bf14610b6257600080fd5b8063c705c569116100dc578063c705c56914610a43578063cf84770614610a7c578063d0b1449d14610aad578063dd62ed3e14610acd57600080fd5b8063b421626c146109c9578063b7df8b36146109e9578063bcd96a2514610a03578063bfc2fc3514610a2357600080fd5b80638aec854211610185578063ab558e4d11610154578063ab558e4d14610989578063ab5cb5a6146109a9578063b1b08f7114610604578063b3d514fb1461060457600080fd5b80638aec85421461091157806392bd7b2c1461092657806395d89b411461093b578063a9059cbb1461096957600080fd5b806380c581d1116101c157806380c581d1146108a9578063893d20e8146108c95780638a63bd9b146108e75780638a8c523c146108fc57600080fd5b806370a0823114610829578063715018a61461085f57806375f0a8741461087457806378648edf1461089457600080fd5b80632e8fa821116102e25780634fb2e45d116102755780636372c68f116102445780636372c68f146107a45780636386c1c7146107c45780636b639a25146107f45780636ebd00781461081457600080fd5b80634fb2e45d1461070b5780634fbee1931461072b57806350a8e01614610764578063590ffdce1461078457600080fd5b80633f3cf56c116102b15780633f3cf56c1461068c578063452ed4f1146106ac5780634ada218b146106cc5780634bbb93eb146106eb57600080fd5b80632e8fa8211461061a578063313ce5671461063057806332cde6641461064c57806333251a0b1461066c57600080fd5b8063095ea7b31161035a57806323b872dd1161032957806323b872dd146105ae5780632610eaca146105ce57806328577751146105ee5780632b28fc7a1461060457600080fd5b8063095ea7b3146105205780630dcbcf1c1461054057806318160ddd14610579578063218950bc1461058e57600080fd5b8063069d955f11610396578063069d955f1461044157806306fdde03146104975780630758d924146104d157806307dd79e0146104f657600080fd5b806303fd2a45146103c85780630445b667146103fb578063044df7261461041f57600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103de61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561040757600080fd5b5061041160125481565b6040519081526020016103f2565b34801561042b57600080fd5b5061043f61043a3660046139fd565b610bf6565b005b34801561044d57600080fd5b506009546104729061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103f2565b3480156104a357600080fd5b5060408051808201909152600881526727b5b0b6b4902b1960c11b60208201525b6040516103f29190613a86565b3480156104dd57600080fd5b50600b546103de9061010090046001600160a01b031681565b34801561050257600080fd5b50600b546105109060ff1681565b60405190151581526020016103f2565b34801561052c57600080fd5b5061051061053b366004613aae565b610cb5565b34801561054c57600080fd5b5061051061055b366004613ada565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058557600080fd5b50610411610ccc565b34801561059a57600080fd5b5061043f6105a9366004613af7565b610ced565b3480156105ba57600080fd5b506105106105c9366004613b25565b610dd2565b3480156105da57600080fd5b5061043f6105e9366004613c3c565b610e4a565b3480156105fa57600080fd5b5061041160155481565b34801561061057600080fd5b506104116103e881565b34801561062657600080fd5b5061041160135481565b34801561063c57600080fd5b50604051601281526020016103f2565b34801561065857600080fd5b5061043f610667366004613d15565b610fff565b34801561067857600080fd5b5061043f610687366004613ada565b611153565b34801561069857600080fd5b5061043f6106a7366004613d58565b611205565b3480156106b857600080fd5b50600c546103de906001600160a01b031681565b3480156106d857600080fd5b5060165461051090610100900460ff1681565b3480156106f757600080fd5b50610411610706366004613d7a565b61135a565b34801561071757600080fd5b5061043f610726366004613ada565b61138e565b34801561073757600080fd5b50610510610746366004613ada565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561077057600080fd5b506016546105109062010000900460ff1681565b34801561079057600080fd5b5061043f61079f366004613d93565b6115c8565b3480156107b057600080fd5b506104116107bf366004613ada565b61163b565b3480156107d057600080fd5b506107e46107df366004613ada565b6116ab565b6040516103f29493929190613db1565b34801561080057600080fd5b5061043f61080f366004613d93565b611733565b34801561082057600080fd5b506104116118c9565b34801561083557600080fd5b50610411610844366004613ada565b6001600160a01b031660009081526020819052604090205490565b34801561086b57600080fd5b5061043f6118e4565b34801561088057600080fd5b50600d546103de906001600160a01b031681565b3480156108a057600080fd5b5061043f611991565b3480156108b557600080fd5b5061043f6108c4366004613d93565b6119e8565b3480156108d557600080fd5b506017546001600160a01b03166103de565b3480156108f357600080fd5b50610510611beb565b34801561090857600080fd5b5061043f611c5b565b34801561091d57600080fd5b506103de611f10565b34801561093257600080fd5b5061043f611f7e565b34801561094757600080fd5b5060408051808201909152600581526427a5a6ab1960d91b60208201526104c4565b34801561097557600080fd5b50610510610984366004613aae565b611fdd565b34801561099557600080fd5b5061043f6109a4366004613ada565b611ff1565b3480156109b557600080fd5b506104116109c4366004613ada565b6121a4565b3480156109d557600080fd5b5061043f6109e4366004613dfe565b6121d7565b3480156109f557600080fd5b506014546105109060ff1681565b348015610a0f57600080fd5b5061043f610a1e366004613e2a565b61229f565b348015610a2f57600080fd5b5061043f610a3e3660046139fd565b6123b9565b348015610a4f57600080fd5b50610510610a5e366004613ada565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610a8857600080fd5b50600a546104729061ffff808216916201000081048216916401000000009091041683565b348015610ab957600080fd5b5061043f610ac8366004613d7a565b612460565b348015610ad957600080fd5b50610411610ae8366004613af7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610b1f57600080fd5b5061043f610b2e366004613ada565b6124bc565b348015610b3f57600080fd5b5061043f61257c565b348015610b5457600080fd5b506016546105109060ff1681565b348015610b6e57600080fd5b5061043f610b7d366004613d7a565b612659565b348015610b8e57600080fd5b506104116126b8565b348015610ba357600080fd5b5061043f610bb2366004613e5d565b612726565b348015610bc357600080fd5b5060115461051090610100900460ff1681565b348015610be257600080fd5b5061043f610bf1366004613d93565b6129e5565b6017546001600160a01b03163314610c435760405162461bcd60e51b8152602060048201526011602482015260008051602061425683398151915260448201526064015b60405180910390fd5b60165460405163efbdbabd60e01b81528315156004820152821515602482015263010000009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050505050565b6000610cc2338484612a58565b5060015b92915050565b6000610cda6012600a613f89565b610ce8906305f5e100613f98565b905090565b6017546001600160a01b03163314610d355760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601654610100900460ff1615610d4a57600080fd5b6001600160a01b0381163014801590610d6c57506001600160a01b0382163014155b8015610d8a5750816001600160a01b0316816001600160a01b031614155b610d9357600080fd5b600f80546001600160a01b0319166001600160a01b03928316179055601680546301000000600160b81b03191663010000009390921692909202179055565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610e37576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610e31908490613faf565b90915550505b610e42848484612b7c565b949350505050565b6017546001600160a01b03163314610e925760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b8051825114610ee35760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610c3a565b60005b82518161ffff161015610ffa57610eff6012600a613f89565b828261ffff1681518110610f1557610f15613fc2565b6020026020010151610f279190613f98565b336000908152602081905260409020541015610f855760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610c3a565b610fe733848361ffff1681518110610f9f57610f9f613fc2565b60200260200101516012600a610fb59190613f89565b858561ffff1681518110610fcb57610fcb613fc2565b6020026020010151610fdd9190613f98565b6000806001612f37565b5080610ff281613fd8565b915050610ee6565b505050565b6017546001600160a01b031633146110475760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b5460ff161561109a5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610c3a565b6103e88361ffff16111580156110b657506103e88261ffff1611155b80156110c857506103e88161ffff1611155b6111145760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610c3a565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6017546001600160a01b0316331461119b5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6016546040516333251a0b60e01b81526001600160a01b0383811660048301526301000000909204909116906333251a0b90602401600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b5050505050565b6017546001600160a01b0316331461124d5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6103e861125c6012600a613f89565b61126a906305f5e100613f98565b611275906005613f98565b61127f9190613ff9565b818361128d6012600a613f89565b61129b906305f5e100613f98565b6112a59190613f98565b6112af9190613ff9565b10156113235760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610c3a565b80826113316012600a613f89565b61133f906305f5e100613f98565b6113499190613f98565b6113539190613ff9565b600e555050565b600c546001600160a01b031660009081526020819052604081205461271090611384908490613f98565b610cc69190613ff9565b6017546001600160a01b031633146113d65760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b0381166114525760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610c3a565b61deac196001600160a01b038216016114d35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610c3a565b601780546001600160a01b039081166000908152600560208181526040808420805460ff19908116909155865486168552600780845282862080548316905588871686529383528185208054821660019081179091559383528185208054909116909317909255935490921681529182905290205415611576576017546001600160a01b031660008181526020819052604090205461157491908390610fdd565b505b601780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6017546001600160a01b031633146116105760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600f54604051631ebbee0360e31b81526001600160a01b038381166004830152600092169063f5df7018906024015b602060405180830381865afa158015611687573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061401b565b600f54604051636386c1c760e01b81526001600160a01b0383811660048301526060928392839283921690636386c1c790602401600060405180830381865afa1580156116fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117249190810190614098565b93509350935093509193509193565b6017546001600160a01b0316331461177b5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03821630148015906117a25750600c546001600160a01b03838116911614155b80156117b957506001600160a01b03821661dead14155b6117c257600080fd5b6001600160a01b0382166000908152600760205260409020805460ff1916821580159190911790915561185757600f54604051636f823f4f60e11b81526001600160a01b038481166004830152600060248301529091169063df047e9e90604401600060405180830381600087803b15801561183d57600080fd5b505af192505050801561184e575060015b156118c5575050565b600f546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e906044015b600060405180830381600087803b1580156118b657600080fd5b505af1925050508015610ffa57505b5050565b60006118d76012600a613f89565b600e54610ce89190613ff9565b6017546001600160a01b0316331461192c5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601754611943906001600160a01b031660006115c8565b601780546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6017546001600160a01b031633146119d95760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b805460ff19166001179055565b6017546001600160a01b03163314611a305760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b80611abb576001600160a01b038281166000818152600160208181526040808420805460ff1990811690915560079092528084208054909216909217905560165490516380c581d160e01b81526004810193909352602483019190915263010000009004909116906380c581d190604401600060405180830381600087803b158015610c9957600080fd5b60025415611b22576203f48060025442611ad59190613faf565b11611b225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610c3a565b6001600160a01b03821660009081526001602052604090205460ff1615611b8b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610c3a565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560165491516380c581d160e01b81526004810193909352602483015263010000009004909116906380c581d190604401610c7f565b6017546000906001600160a01b03163314611c365760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600b54611c5590309061010090046001600160a01b0316600019612a58565b50600190565b6017546001600160a01b03163314611ca35760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b601654610100900460ff1615611cfb5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610c3a565b60165462010000900460ff16611d535760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610c3a565b601654630100000090046001600160a01b0316611d8657601680546301000000600160b81b031916306301000000021790555b601654600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526012606482015263010000009092041690636c115c3490608401600060405180830381600087803b158015611df957600080fd5b505af1925050508015611e0a575060015b50601654600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b81526004810191909152630100000090920416906325a71cae9060240160408051808303816000875af1925050508015611e8e575060408051601f3d908101601f19168201909252611e8b91810190614145565b60015b15611e9d576012919091556013555b600f60009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611eed57600080fd5b505af1925050508015611efe575060015b506016805461ffff1916610101179055565b600f546040805163457642a160e11b815290516000926001600160a01b031691638aec85429160048083019260209291908290030181865afa158015611f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190614169565b600f54604051632e6f0efd60e01b81523360048201526001600160a01b0390911690632e6f0efd90602401600060405180830381600087803b158015611fc357600080fd5b505af1158015611fd7573d6000803e3d6000fd5b50505050565b6000611fea338484612b7c565b9392505050565b6017546001600160a01b031633146120395760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b60165462010000900460ff16156120a257306001600160a01b038216036120a25760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610c3a565b6017546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156120f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211d919061401b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffa9190614186565b600f5460405163f6ed201760e01b81526001600160a01b038381166004830152600092169063f6ed20179060240161166a565b6017546001600160a01b0316331461221f5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b61222a81600a6141a3565b6122349083613f98565b600f546040516302ab5aa360e31b815260048101869052602481018390529193506001600160a01b03169063155ad51890604401600060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b50505050505050565b6017546001600160a01b031633146122e75760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b600a805461ffff838116620100000263ffffffff199092169085161717905561231081836141af565b600a805465ffff00000000191664010000000061ffff9384160217905560095460009161234691620100008104821691166141af565b600a5461ffff9182169250640100000000900416811015610ffa5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610c3a565b6017546001600160a01b031633146124015760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6011805461ff001916610100841515908102919091179091556016805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6017546001600160a01b031633146124a85760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b620b71b081106124b757600080fd5b601055565b6017546001600160a01b031633146125045760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03811661255a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610c3a565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146125c45760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b60165462010000900460ff161561261d5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610c3a565b6017546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612656573d6000803e3d6000fd5b50565b600f5460405163a9e732bb60e01b8152600481018390526001600160a01b039091169063a9e732bb90602401600060405180830381600087803b15801561269f57600080fd5b505af19250505080156126b0575060015b156126565750565b600f5460408051630ad2bf4b60e31b815290516000926001600160a01b031691635695fa589160048083019260209291908290030181865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce8919061401b565b6017546001600160a01b0316331461276e5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b828461277c6012600a613f89565b61278a906305f5e100613f98565b6127949190613f98565b61279e9190613ff9565b6012908155819083906127b290600a613f89565b6127c0906305f5e100613f98565b6127ca9190613f98565b6127d49190613ff9565b601381905560125411156128345760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610c3a565b600c546001600160a01b03166000908152602081905260409020546127109061285e906096613f98565b6128689190613ff9565b60135411156128c55760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610c3a565b620f42406128d56012600a613f89565b6128e3906305f5e100613f98565b6128ed9190613ff9565b60135410156129555760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c3a565b620f42406129656012600a613f89565b612973906305f5e100613f98565b61297d9190613ff9565b6012541015611fd75760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c3a565b6017546001600160a01b03163314612a2d5760405162461bcd60e51b815260206004820152601160248201526000805160206142568339815191526044820152606401610c3a565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b038316612aba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c3a565b6001600160a01b038216612b1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c3a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612be25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c3a565b6001600160a01b038316612c445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c3a565b60008211612ca65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c3a565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612cd45760019250612d02565b6001600160a01b03861660009081526001602052604090205460ff1615612cfe5760019150612d02565b5060015b612d0c87876131e7565b15612eca57601654610100900460ff16612e125780612d6d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610c3a565b6001600160a01b03871660009081526004602052604090205460ff16158015612daf57506001600160a01b03861660009081526004602052604090205460ff16155b15612e125760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610c3a565b8280612e1b5750815b15612eca576001600160a01b03871660009081526006602052604090205460ff16158015612e6257506001600160a01b03861660009081526006602052604090205460ff16155b15612eca57600e54851115612eca5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c3a565b8115612f1e5760115460ff16612f1e57601154610100900460ff1615612f1e57306000908152602081905260409020546012548110612f1c57601354808210612f11578091505b612f1a826132fe565b505b505b612f2c878787868686612f37565b979650505050505050565b6000612f4387876131e7565b15612fde5760165460405163ecd07a5360e01b81526001600160a01b03898116600483015288811660248301526044820188905260009263010000009004169063ecd07a53906064016020604051808303816000875af1925050508015612fc7575060408051601f3d908101601f19168201909252612fc491810190614186565b60015b612fd057600080fd5b905080612fdc57600080fd5b505b6001600160a01b03871660009081526005602052604090205460019060ff168061302057506001600160a01b03871660009081526005602052604090205460ff165b15613029575060005b6001600160a01b03881660009081526020819052604081208054889290613051908490613faf565b90915550869050811561306e5761306b8988888888613619565b90505b6001600160a01b038816600090815260208190526040812080548392906130969084906141d1565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130e291815260200190565b60405180910390a360165462010000900460ff166131ce57613104898961373d565b60165462010000900460ff16158015613122575061312289896131e7565b801561314757506001600160a01b03891660009081526004602052604090205460ff16155b801561316c57506001600160a01b03881660009081526004602052604090205460ff16155b8015613176575083155b156131ce5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610c3a565b6131d8898961388d565b50600198975050505050505050565b6017546000906001600160a01b0384811691161480159061321657506017546001600160a01b03838116911614155b801561322d57506017546001600160a01b03163214155b801561325257506001600160a01b03821660009081526008602052604090205460ff16155b801561327757506001600160a01b03831660009081526008602052604090205460ff16155b801561328e57506001600160a01b03821661dead14155b80156132a257506001600160a01b03821615155b80156132b757506001600160a01b0383163014155b80156132d857506016546001600160a01b0384811663010000009092041614155b8015611fea575050601654630100000090046001600160a01b0390811691161415919050565b6011805460ff1916600117905560408051606081018252600a5461ffff808216835262010000820481166020840152640100000000909104169181018290529060000361334b575061360c565b306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902054600019146133ae57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106133e3576133e3613fc2565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347a9190614169565b8160018151811061348d5761348d613fc2565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906134da9086906000908690309042906004016141e4565b600060405180830381600087803b1580156134f457600080fd5b505af1925050508015613505575060015b61351057505061360c565b604082015182514791600091829161ffff90811691613530911685613f98565b61353a9190613ff9565b855190915061ffff16156135ac57600f60009054906101000a90046001600160a01b03166001600160a01b03166386d5c4be826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561359857600080fd5b505af1935050505080156135aa575060015b505b600d546040516001600160a01b039091169061d6d89047906000818181858888f193505050503d80600081146135fe576040519150601f19603f3d011682016040523d82523d6000602084013e613603565b606091505b50505050505050505b506011805460ff19169055565b600080841561362f575060095461ffff16613659565b8315613648575060095462010000900461ffff16613659565b50600954640100000000900461ffff165b8060000361366a5785915050613734565b601654630100000090046001600160a01b031630148015613695575046600114806136955750466038145b1561369f57506111945b60006127106136ae8389613f98565b6136b89190613ff9565b905080156137255730600090815260208190526040812080548392906136df9084906141d1565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61372f8188613faf565b925050505b95945050505050565b60165462010000900460ff16156137a25760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610c3a565b6137ac82826131e7565b1580156137c65750600c546001600160a01b038281169116145b156118c5576001600160a01b038083166000908152600860205260409020805460ff191660011790556016805462ff00001916620100001790819055630100000090041661382a57601680546301000000600160b81b031916306301000000021790555b600f546001600160a01b031661384d57600f80546001600160a01b031916301790555b6011805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001612454565b6001600160a01b03821660009081526007602052604090205460ff1661391e57600f546001600160a01b0383811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b15801561390b57600080fd5b505af192505050801561391c575060015b505b6001600160a01b03811660009081526007602052604090205460ff166139af57600f546001600160a01b0382811660008181526020819052604090819020549051636f823f4f60e11b81526004810192909252602482015291169063df047e9e90604401600060405180830381600087803b15801561399c57600080fd5b505af19250505080156139ad575060015b505b60165460ff16156118c557600f5460105460405163a9e732bb60e01b81526001600160a01b039092169163a9e732bb9161189c9160040190815260200190565b801515811461265657600080fd5b60008060408385031215613a1057600080fd5b8235613a1b816139ef565b91506020830135613a2b816139ef565b809150509250929050565b60005b83811015613a51578181015183820152602001613a39565b50506000910152565b60008151808452613a72816020860160208601613a36565b601f01601f19169290920160200192915050565b602081526000611fea6020830184613a5a565b6001600160a01b038116811461265657600080fd5b60008060408385031215613ac157600080fd5b8235613acc81613a99565b946020939093013593505050565b600060208284031215613aec57600080fd5b8135611fea81613a99565b60008060408385031215613b0a57600080fd5b8235613b1581613a99565b91506020830135613a2b81613a99565b600080600060608486031215613b3a57600080fd5b8335613b4581613a99565b92506020840135613b5581613a99565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613ba557613ba5613b66565b604052919050565b600067ffffffffffffffff821115613bc757613bc7613b66565b5060051b60200190565b600082601f830112613be257600080fd5b81356020613bf7613bf283613bad565b613b7c565b82815260059290921b84018101918181019086841115613c1657600080fd5b8286015b84811015613c315780358352918301918301613c1a565b509695505050505050565b60008060408385031215613c4f57600080fd5b823567ffffffffffffffff80821115613c6757600080fd5b818501915085601f830112613c7b57600080fd5b81356020613c8b613bf283613bad565b82815260059290921b84018101918181019089841115613caa57600080fd5b948201945b83861015613cd1578535613cc281613a99565b82529482019490820190613caf565b96505086013592505080821115613ce757600080fd5b50613cf485828601613bd1565b9150509250929050565b803561ffff81168114613d1057600080fd5b919050565b600080600060608486031215613d2a57600080fd5b613d3384613cfe565b9250613d4160208501613cfe565b9150613d4f60408501613cfe565b90509250925092565b60008060408385031215613d6b57600080fd5b50508035926020909101359150565b600060208284031215613d8c57600080fd5b5035919050565b60008060408385031215613da657600080fd5b8235613a1b81613a99565b608081526000613dc46080830187613a5a565b8281036020840152613dd68187613a5a565b90508281036040840152613dea8186613a5a565b90508281036060840152612f2c8185613a5a565b600080600060608486031215613e1357600080fd5b505081359360208301359350604090920135919050565b60008060408385031215613e3d57600080fd5b613e4683613cfe565b9150613e5460208401613cfe565b90509250929050565b60008060008060808587031215613e7357600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613ee0578160001904821115613ec657613ec6613e8f565b80851615613ed357918102915b93841c9390800290613eaa565b509250929050565b600082613ef757506001610cc6565b81613f0457506000610cc6565b8160018114613f1a5760028114613f2457613f40565b6001915050610cc6565b60ff841115613f3557613f35613e8f565b50506001821b610cc6565b5060208310610133831016604e8410600b8410161715613f63575081810a610cc6565b613f6d8383613ea5565b8060001904821115613f8157613f81613e8f565b029392505050565b6000611fea60ff841683613ee8565b8082028115828204841417610cc657610cc6613e8f565b81810381811115610cc657610cc6613e8f565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613fef57613fef613e8f565b6001019392505050565b60008261401657634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561402d57600080fd5b5051919050565b600082601f83011261404557600080fd5b815167ffffffffffffffff81111561405f5761405f613b66565b614072601f8201601f1916602001613b7c565b81815284602083860101111561408757600080fd5b610e42826020830160208701613a36565b600080600080608085870312156140ae57600080fd5b845167ffffffffffffffff808211156140c657600080fd5b6140d288838901614034565b955060208701519150808211156140e857600080fd5b6140f488838901614034565b9450604087015191508082111561410a57600080fd5b61411688838901614034565b9350606087015191508082111561412c57600080fd5b5061413987828801614034565b91505092959194509250565b6000806040838503121561415857600080fd5b505080516020909101519092909150565b60006020828403121561417b57600080fd5b8151611fea81613a99565b60006020828403121561419857600080fd5b8151611fea816139ef565b6000611fea8383613ee8565b61ffff8181168382160190808211156141ca576141ca613e8f565b5092915050565b80820180821115610cc657610cc6613e8f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156142345784516001600160a01b03168352938301939183019160010161420f565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122011e0b96d4291447fadff23f12313e88240b95054f7bd4ed15d236d90679b060b64736f6c63430008130033
Deployed Bytecode Sourcemap
4801:24045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6358:73;;;;;;;;;;;;6389:42;6358:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;6358:73:0;;;;;;;;6801:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;6801:28:0;245:177:1;16068:153:0;;;;;;;;;;-1:-1:-1;16068:153:0;;;;;:::i;:::-;;:::i;:::-;;5833:108;;;;;;;;;;-1:-1:-1;5833:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;5833:108:0;931:365:1;12216:80:0;;;;;;;;;;-1:-1:-1;12288:5:0;;;;;;;;;;;;-1:-1:-1;;;12288:5:0;;;;12216:80;;;;;;;:::i;6297:26::-;;;;;;;;;;-1:-1:-1;6297:26:0;;;;;;;-1:-1:-1;;;;;6297:26:0;;;6264;;;;;;;;;;-1:-1:-1;6264:26:0;;;;;;;;;;;2470:14:1;;2463:22;2445:41;;2433:2;2418:18;6264:26:0;2305:187:1;12637:161:0;;;;;;;;;;-1:-1:-1;12637:161:0;;;;;:::i;:::-;;:::i;15060:140::-;;;;;;;;;;-1:-1:-1;15060:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;15158:34:0;15134:4;15158:34;;;:25;:34;;;;;;;;;15060:140;11951:83;;;;;;;;;;;;;:::i;14435:337::-;;;;;;;;;;-1:-1:-1;14435:337:0;;;;;:::i;:::-;;:::i;13497:306::-;;;;;;;;;;-1:-1:-1;13497:306:0;;;;;:::i;:::-;;:::i;26973:447::-;;;;;;;;;;-1:-1:-1;26973:447:0;;;;;:::i;:::-;;:::i;6909:33::-;;;;;;;;;;;;;;;;6061:42;;;;;;;;;;;;6099:4;6061:42;;6836:25;;;;;;;;;;;;;;;;12040:80;;;;;;;;;;-1:-1:-1;12040:80:0;;5535:2;6711:36:1;;6699:2;6684:18;12040:80:0;6569:184:1;16618:453:0;;;;;;;;;;-1:-1:-1;16618:453:0;;;;;:::i;:::-;;:::i;15950:110::-;;;;;;;;;;-1:-1:-1;15950:110:0;;;;;:::i;:::-;;:::i;17437:273::-;;;;;;;;;;-1:-1:-1;17437:273:0;;;;;:::i;:::-;;:::i;6330:21::-;;;;;;;;;;-1:-1:-1;6330:21:0;;;;-1:-1:-1;;;;;6330:21:0;;;6994:34;;;;;;;;;;-1:-1:-1;6994:34:0;;;;;;;;;;;17832:189;;;;;;;;;;-1:-1:-1;17832:189:0;;;;;:::i;:::-;;:::i;10569:759::-;;;;;;;;;;-1:-1:-1;10569:759:0;;;;;:::i;:::-;;:::i;14780:127::-;;;;;;;;;;-1:-1:-1;14780:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;14871:28:0;14847:4;14871:28;;;:19;:28;;;;;;;;;14780:127;7035:36;;;;;;;;;;-1:-1:-1;7035:36:0;;;;;;;;;;;15652:134;;;;;;;;;;-1:-1:-1;15652:134:0;;;;;:::i;:::-;;:::i;28443:138::-;;;;;;;;;;-1:-1:-1;28443:138:0;;;;;:::i;:::-;;:::i;28266:169::-;;;;;;;;;;-1:-1:-1;28266:169:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;15208:436::-;;;;;;;;;;-1:-1:-1;15208:436:0;;;;;:::i;:::-;;:::i;17718:106::-;;;;;;;;;;;;;:::i;12387:103::-;;;;;;;;;;-1:-1:-1;12387:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;12471:16:0;12453:7;12471:16;;;;;;;;;;;;12387:103;11336:225;;;;;;;;;;;;;:::i;6519:92::-;;;;;;;;;;-1:-1:-1;6519:92:0;;;;-1:-1:-1;;;;;6519:92:0;;;16428:182;;;;;;;;;;;;;:::i;13811:616::-;;;;;;;;;;-1:-1:-1;13811:616:0;;;;;:::i;:::-;;:::i;12302:79::-;;;;;;;;;;-1:-1:-1;12372:6:0;;-1:-1:-1;;;;;12372:6:0;12302:79;;13156:173;;;;;;;;;;;;;:::i;23678:733::-;;;;;;;;;;;;;:::i;28731:112::-;;;;;;;;;;;;;:::i;28036:98::-;;;;;;;;;;;;;:::i;12126:84::-;;;;;;;;;;-1:-1:-1;12200:7:0;;;;;;;;;;;;-1:-1:-1;;;12200:7:0;;;;12126:84;;13337:152;;;;;;;;;;-1:-1:-1;13337:152:0;;;;;:::i;:::-;;:::i;27618:296::-;;;;;;;;;;-1:-1:-1;27618:296:0;;;;;:::i;:::-;;:::i;28589:134::-;;;;;;;;;;-1:-1:-1;28589:134:0;;;;;:::i;:::-;;:::i;18997:273::-;;;;;;;;;;-1:-1:-1;18997:273:0;;;;;:::i;:::-;;:::i;6868:34::-;;;;;;;;;;-1:-1:-1;6868:34:0;;;;;;;;17079:350;;;;;;;;;;-1:-1:-1;17079:350:0;;;;;:::i;:::-;;:::i;18736:253::-;;;;;;;;;;-1:-1:-1;18736:253:0;;;;;:::i;:::-;;:::i;14915:137::-;;;;;;;;;;-1:-1:-1;14915:137:0;;;;;:::i;:::-;-1:-1:-1;;;;;15011:33:0;14987:4;15011:33;;;:24;:33;;;;;;;;;14915:137;5950:102;;;;;;;;;;-1:-1:-1;5950:102:0;;;;;;;;;;;;;;;;;;;;;;19278:129;;;;;;;;;;-1:-1:-1;19278:129:0;;;;;:::i;:::-;;:::i;12496:133::-;;;;;;;;;;-1:-1:-1;12496:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12598:19:0;;;12580:7;12598:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12496:133;16229:191;;;;;;;;;;-1:-1:-1;16229:191:0;;;;;:::i;:::-;;:::i;27428:182::-;;;;;;;;;;;;;:::i;6951:34::-;;;;;;;;;;-1:-1:-1;6951:34:0;;;;;;;;26004:111;;;;;;;;;;-1:-1:-1;26004:111:0;;;;;:::i;:::-;;:::i;28142:116::-;;;;;;;;;;;;;:::i;18029:699::-;;;;;;;;;;-1:-1:-1;18029:699:0;;;;;:::i;:::-;;:::i;6755:39::-;;;;;;;;;;-1:-1:-1;6755:39:0;;;;;;;;;;;15794:148;;;;;;;;;;-1:-1:-1;15794:148:0;;;;;:::i;:::-;;:::i;16068:153::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;;;;;;;;;16163:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;16163:50:0;;10808:14:1;;10801:22;16163:50:0::1;::::0;::::1;10783:41:1::0;10867:14;;10860:22;10840:18;;;10833:50;16163:11:0;;;::::1;-1:-1:-1::0;;;;;16163:11:0::1;::::0;:26:::1;::::0;10756:18:1;;16163:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16068:153:::0;;:::o;12637:161::-;12714:4;12731:37;12740:10;12752:7;12761:6;12731:8;:37::i;:::-;-1:-1:-1;12786:4:0;12637:161;;;;;:::o;11951:83::-;12006:7;5597:15;5535:2;5597;:15;:::i;:::-;5579:34;;5385:11;5579:34;:::i;:::-;12017:14;;11951:83;:::o;14435:337::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;14543:14:::1;::::0;::::1;::::0;::::1;;;14542:15;14534:24;;;::::0;::::1;;-1:-1:-1::0;;;;;14577:29:0;::::1;14601:4;14577:29;::::0;::::1;::::0;:62:::1;;-1:-1:-1::0;;;;;;14610:29:0;::::1;14634:4;14610:29;;14577:62;:94;;;;;14659:12;-1:-1:-1::0;;;;;14643:28:0::1;:12;-1:-1:-1::0;;;;;14643:28:0::1;;;14577:94;14569:103;;;::::0;::::1;;14683:7;:31:::0;;-1:-1:-1;;;;;;14683:31:0::1;-1:-1:-1::0;;;;;14683:31:0;;::::1;;::::0;;14725:11:::1;:39:::0;;-1:-1:-1;;;;;;14725:39:0::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;14435:337::o;13497:306::-;-1:-1:-1;;;;;13618:19:0;;13597:4;13618:19;;;:11;:19;;;;;;;;13638:10;13618:31;;;;;;;;-1:-1:-1;;13618:52:0;13614:126;;-1:-1:-1;;;;;13687:19:0;;;;;;:11;:19;;;;;;;;13707:10;13687:31;;;;;;;:41;;13722:6;;13687:19;:41;;13722:6;;13687:41;:::i;:::-;;;;-1:-1:-1;;13614:126:0;13759:36;13769:6;13777:9;13788:6;13759:9;:36::i;:::-;13752:43;13497:306;-1:-1:-1;;;;13497:306:0:o;26973:447::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;27108:7:::1;:14;27089:8;:15;:33;27081:67;;;::::0;-1:-1:-1;;;27081:67:0;;12917:2:1;27081:67:0::1;::::0;::::1;12899:21:1::0;12956:2;12936:18;;;12929:30;12995:23;12975:18;;;12968:51;13036:18;;27081:67:0::1;12715:345:1::0;27081:67:0::1;27164:8;27159:254;27182:8;:15;27178:1;:19;;;27159:254;;;27263:13;5535:2;27263;:13;:::i;:::-;27252:7;27260:1;27252:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;27237:10;12453:7:::0;12471:16;;;;;;;;;;;27227:49:::1;;27219:80;;;::::0;-1:-1:-1;;;27219:80:0;;13399:2:1;27219:80:0::1;::::0;::::1;13381:21:1::0;13438:2;13418:18;;;13411:30;13477:20;13457:18;;;13450:48;13515:18;;27219:80:0::1;13197:342:1::0;27219:80:0::1;27314:87;27331:10;27343:8;27352:1;27343:11;;;;;;;;;;:::i;:::-;;;;;;;5535:2;27367;:13;;;;:::i;:::-;27356:7;27364:1;27356:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;27382:5;27389::::0;27396:4:::1;27314:16;:87::i;:::-;-1:-1:-1::0;27199:3:0;::::1;::::0;::::1;:::i;:::-;;;;27159:254;;;;26973:447:::0;;:::o;16618:453::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;16726:14:::1;::::0;::::1;;16725:15;16717:45;;;::::0;-1:-1:-1;;;16717:45:0;;13948:2:1;16717:45:0::1;::::0;::::1;13930:21:1::0;13987:2;13967:18;;;13960:30;14026:19;14006:18;;;13999:47;14063:18;;16717:45:0::1;13746:341:1::0;16717:45:0::1;6099:4;16781:6;:21;;;;:65;;;;;6149:4;16823:7;:23;;;;16781:65;:117;;;;;6203:4;16867:11;:31;;;;16781:117;16773:170;;;::::0;-1:-1:-1;;;16773:170:0;;14294:2:1;16773:170:0::1;::::0;::::1;14276:21:1::0;14333:2;14313:18;;;14306:30;14372:25;14352:18;;;14345:53;14415:18;;16773:170:0::1;14092:347:1::0;16773:170:0::1;16954:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;16990:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;17028:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;16618:453::o;15950:110::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;16019:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;16019:33:0;;-1:-1:-1;;;;;178:55:1;;;16019:33:0::1;::::0;::::1;160:74:1::0;16019:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;16019:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15950:110:::0;:::o;17437:273::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;17582:4:::1;5597:15;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;17568:11;::::0;17578:1:::1;17568:11;:::i;:::-;:18;;;;:::i;:::-;17556:7:::0;17545;5597:15:::1;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;17535:17;;;;:::i;:::-;17534:29;;;;:::i;:::-;:53;;17526:121;;;::::0;-1:-1:-1;;;17526:121:0;;14868:2:1;17526:121:0::1;::::0;::::1;14850:21:1::0;14907:2;14887:18;;;14880:30;14946:34;14926:18;;;14919:62;15017:25;14997:18;;;14990:53;15060:19;;17526:121:0::1;14666:419:1::0;17526:121:0::1;17695:7:::0;17684;5597:15:::1;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;17674:17;;;;:::i;:::-;17673:29;;;;:::i;:::-;17658:12;:44:::0;-1:-1:-1;;17437:273:0:o;17832:189::-;17961:6;;-1:-1:-1;;;;;17961:6:0;17923:7;12471:16;;;;;;;;;;;6250:5;;17951:41;;17971:21;;17951:41;:::i;:::-;17950:62;;;;:::i;10569:759::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;-1:-1:-1;;;;;10648:22:0;::::1;10640:96;;;::::0;-1:-1:-1;;;10640:96:0;;15292:2:1;10640:96:0::1;::::0;::::1;15274:21:1::0;15331:2;15311:18;;;15304:30;15370:34;15350:18;;;15343:62;15441:31;15421:18;;;15414:59;15490:19;;10640:96:0::1;15090:425:1::0;10640:96:0::1;-1:-1:-1::0;;;;;;;10755:16:0;::::1;::::0;10747:90:::1;;;::::0;-1:-1:-1;;;10747:90:0;;15292:2:1;10747:90:0::1;::::0;::::1;15274:21:1::0;15331:2;15311:18;;;15304:30;15370:34;15350:18;;;15343:62;15441:31;15421:18;;;15414:59;15490:19;;10747:90:0::1;15090:425:1::0;10747:90:0::1;10868:6;::::0;;-1:-1:-1;;;;;10868:6:0;;::::1;10878:5;10848:27:::0;;;:19:::1;:27;::::0;;;;;;;:35;;-1:-1:-1;;10848:35:0;;::::1;::::0;;;10919:6;;;::::1;10894:32:::0;;:24:::1;:32:::0;;;;;;:40;;;::::1;::::0;;10945:29;;::::1;::::0;;;;;;;;:36;;;::::1;-1:-1:-1::0;10945:36:0;;::::1;::::0;;;10992:34;;;;;;:41;;;;::::1;::::0;;::::1;::::0;;;11068:6;;;;::::1;12471:16:::0;;;;;;;;;11058:21;11054:127:::1;;11113:6;::::0;-1:-1:-1;;;;;11113:6:0::1;12453:7:::0;12471:16;;;;;;;;;;;11096:73:::1;::::0;11113:6;11121:8;;11131:17:::1;12387:103:::0;11096:73:::1;;11054:127;11220:6;::::0;;-1:-1:-1;;;;;11237:17:0;;::::1;-1:-1:-1::0;;;;;;11237:17:0;::::1;::::0;::::1;::::0;;;11270:40:::1;::::0;11220:6;::::1;::::0;11237:17;11220:6;;11270:40:::1;::::0;11201:16:::1;::::0;11270:40:::1;10629:699;10569:759:::0;:::o;15652:134::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;-1:-1:-1;;;;;15740:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;15740:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15652:134::o;28443:138::-;28537:7;;:36;;-1:-1:-1;;;28537:36:0;;-1:-1:-1;;;;;178:55:1;;;28537:36:0;;;160:74:1;28510:7:0;;28537;;:30;;133:18:1;;28537:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28266:169::-;28402:7;;:25;;-1:-1:-1;;;28402:25:0;;-1:-1:-1;;;;;178:55:1;;;28402:25:0;;;160:74:1;28324:13:0;;;;;;;;28402:7;;:19;;133:18:1;;28402:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28402:25:0;;;;;;;;;;;;:::i;:::-;28395:32;;;;;;;;28266:169;;;;;:::o;15208:436::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;-1:-1:-1;;;;;15304:24:0;::::1;15323:4;15304:24;::::0;::::1;::::0;:63:::1;;-1:-1:-1::0;15361:6:0::1;::::0;-1:-1:-1;;;;;15350:17:0;;::::1;15361:6:::0;::::1;15350:17;;15304:63;:99;;;;-1:-1:-1::0;;;;;;15388:15:0;::::1;6389:42;15388:15;;15304:99;15296:108;;;::::0;::::1;;-1:-1:-1::0;;;;;15415:33:0;::::1;;::::0;;;:24:::1;:33;::::0;;;;:43;;-1:-1:-1;;15415:43:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;15469:168:::1;;15501:7;::::0;:25:::1;::::0;-1:-1:-1;;;15501:25:0;;-1:-1:-1;;;;;17400:55:1;;;15501:25:0::1;::::0;::::1;17382:74:1::0;15501:7:0::1;17472:18:1::0;;;17465:34;15501:7:0;;::::1;::::0;:13:::1;::::0;17355:18:1;;15501:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15497:41:::0;15469:168:::1;15497:41;15208:436:::0;;:::o;15469:168::-:1;15574:7;::::0;-1:-1:-1;;;;;15597:16:0;;::::1;15574:7;15597:16:::0;;;::::1;::::0;;;;;;;;;15574:40;;-1:-1:-1;;;15574:40:0;;::::1;::::0;::::1;17382:74:1::0;;;;17472:18;;;17465:34;15574:7:0;::::1;::::0;:13:::1;::::0;17355:18:1;;15574:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;15570:56;15208:436:::0;;:::o;17718:106::-;17759:7;17802:13;5535:2;17802;:13;:::i;:::-;17786:12;;:30;;;;:::i;11336:225::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;11415:6:::1;::::0;11395:34:::1;::::0;-1:-1:-1;;;;;11415:6:0::1;;11395:19;:34::i;:::-;11459:6;::::0;;-1:-1:-1;;;;;;11476:19:0;::::1;::::0;;;11511:42:::1;::::0;-1:-1:-1;;;;;11459:6:0;;::::1;::::0;11440:16:::1;::::0;11459:6;;11511:42:::1;::::0;11440:16;;11511:42:::1;11384:177;11336:225::o:0;16428:182::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;16581:14:::1;:21:::0;;-1:-1:-1;;16581:21:0::1;16598:4;16581:21;::::0;;16428:182::o;13811:616::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;13893:7:::1;13888:532;;-1:-1:-1::0;;;;;13917:13:0;;::::1;13933:5;13917:13:::0;;;:7:::1;:13;::::0;;;;;;;:21;;-1:-1:-1;;13917:21:0;;::::1;::::0;;;13953:24:::1;:30:::0;;;;;;:37;;;;::::1;::::0;;::::1;::::0;;14005:11:::1;::::0;:34;;-1:-1:-1;;;14005:34:0;;::::1;::::0;::::1;17980:74:1::0;;;;18070:18;;;18063:50;;;;14005:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;17953:18:1;;14005:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;13888:532;14076:17;::::0;:22;14072:135:::1;;14165:6;14145:17;;14127:15;:35;;;;:::i;:::-;:44;14119:72;;;::::0;-1:-1:-1;;;14119:72:0;;18326:2:1;14119:72:0::1;::::0;::::1;18308:21:1::0;18365:2;18345:18;;;18338:30;18404:17;18384:18;;;18377:45;18439:18;;14119:72:0::1;18124:339:1::0;14119:72:0::1;-1:-1:-1::0;;;;;14230:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;14229:14;14221:54;;;::::0;-1:-1:-1;;;14221:54:0;;18670:2:1;14221:54:0::1;::::0;::::1;18652:21:1::0;18709:2;18689:18;;;18682:30;18748:29;18728:18;;;18721:57;18795:18;;14221:54:0::1;18468:351:1::0;14221:54:0::1;-1:-1:-1::0;;;;;14290:13:0;;::::1;;::::0;;;14306:4:::1;14290:13;::::0;;;;;;;;:20;;-1:-1:-1;;14290:20:0::1;::::0;::::1;::::0;;14345:15:::1;14325:17;:35:::0;14375:11:::1;::::0;:33;;-1:-1:-1;;;14375:33:0;;::::1;::::0;::::1;17980:74:1::0;;;;18070:18;;;18063:50;14375:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;17953:18:1;;14375:33:0::1;17812:307:1::0;13156:173:0;10423:6;;13220:4;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;13269:9:::1;::::0;13237:62:::1;::::0;13254:4:::1;::::0;13269:9:::1;::::0;::::1;-1:-1:-1::0;;;;;13269:9:0::1;-1:-1:-1::0;;13237:8:0::1;:62::i;:::-;-1:-1:-1::0;13317:4:0::1;13156:173:::0;:::o;23678:733::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;23740:14:::1;::::0;::::1;::::0;::::1;;;23739:15;23731:52;;;::::0;-1:-1:-1;;;23731:52:0;;19026:2:1;23731:52:0::1;::::0;::::1;19008:21:1::0;19065:2;19045:18;;;19038:30;19104:26;19084:18;;;19077:54;19148:18;;23731:52:0::1;18824:348:1::0;23731:52:0::1;23802:16;::::0;;;::::1;;;23794:53;;;::::0;-1:-1:-1;;;23794:53:0;;19379:2:1;23794:53:0::1;::::0;::::1;19361:21:1::0;19418:2;19398:18;;;19391:30;19457:26;19437:18;;;19430:54;19501:18;;23794:53:0::1;19177:348:1::0;23794:53:0::1;23870:11;::::0;;;::::1;-1:-1:-1::0;;;;;23870:11:0::1;23858:106;;23912:11;:40:::0;;-1:-1:-1;;;;;;23912:40:0::1;23946:4;23912:40:::0;::::1;;::::0;;23858:106:::1;23978:11;::::0;24000:6:::1;::::0;23978:87:::1;::::0;-1:-1:-1;;;23978:87:0;;-1:-1:-1;;;;;24000:6:0;;::::1;23978:87;::::0;::::1;19753:74:1::0;19875:10;24015:12:0::1;19863:23:1::0;19843:18;;;19836:51;19935:18;24037:15:0::1;19923:31:1::0;19903:18;;;19896:59;5535:2:0::1;19971:18:1::0;;;19964:45;23978:11:0;;;::::1;;::::0;:21:::1;::::0;19725:19:1;;23978:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;24091:11:0::1;::::0;24122:6:::1;::::0;-1:-1:-1;;;;;24122:6:0;;::::1;12453:7:::0;12471:16;;;;;;;;;;;;;24091:39;;-1:-1:-1;;;24091:39:0;;::::1;::::0;::::1;391:25:1::0;;;;24091:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;24091:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;24091:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;24091:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;24087:207:::0;::::1;;24202:13;:29:::0;;;;24246:10:::1;:27:::0;24087:207:::1;24308:7;;;;;;;;;-1:-1:-1::0;;;;;24308:7:0::1;-1:-1:-1::0;;;;;24308:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;24304:36:::0;24350:14:::1;:21:::0;;-1:-1:-1;;24382:21:0;;;;;23678:733::o;28731:112::-;28809:7;;:26;;;-1:-1:-1;;;28809:26:0;;;;28782:7;;-1:-1:-1;;;;;28809:7:0;;:24;;:26;;;;;;;;;;;;;;:7;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28036:98::-;28087:7;;:39;;-1:-1:-1;;;28087:39:0;;28115:10;28087:39;;;160:74:1;-1:-1:-1;;;;;28087:7:0;;;;:27;;133:18:1;;28087:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28036:98::o;13337:152::-;13417:4;13441:40;13451:10;13463:9;13474:6;13441:9;:40::i;:::-;13434:47;13337:152;-1:-1:-1;;;13337:152:0:o;27618:296::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;27696:16:::1;::::0;;;::::1;;;27692:111;;;27754:4;-1:-1:-1::0;;;;;27737:22:0;::::1;::::0;27729:62:::1;;;::::0;-1:-1:-1;;;27729:62:0;;20728:2:1;27729:62:0::1;::::0;::::1;20710:21:1::0;20767:2;20747:18;;;20740:30;20806:29;20786:18;;;20779:57;20853:18;;27729:62:0::1;20526:351:1::0;27729:62:0::1;27867:6;::::0;27875:30:::1;::::0;-1:-1:-1;;;27875:30:0;;27899:4:::1;27875:30;::::0;::::1;160:74:1::0;27835:5:0;;-1:-1:-1;;;;;27852:14:0;;::::1;::::0;::::1;::::0;27867:6;;;::::1;::::0;27852:14;;27875:15:::1;::::0;133:18:1;;27875:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27852:54;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;17400:55:1;;;27852:54:0::1;::::0;::::1;17382:74:1::0;17472:18;;;17465:34;17355:18;;27852:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28589:134::-:0;28684:7;;:31;;-1:-1:-1;;;28684:31:0;;-1:-1:-1;;;;;178:55:1;;;28684:31:0;;;160:74:1;28657:7:0;;28684;;:25;;133:18:1;;28684:31:0;14:226:1;18997:273:0;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;19168:27:::1;19172:23:::0;19168:2:::1;:27;:::i;:::-;19151:44;::::0;:14;:44:::1;:::i;:::-;19206:7;::::0;:56:::1;::::0;-1:-1:-1;;;19206:56:0;;::::1;::::0;::::1;21442:25:1::0;;;21483:18;;;21476:34;;;19134:61:0;;-1:-1:-1;;;;;;19206:7:0::1;::::0;:28:::1;::::0;21415:18:1;;19206:56:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18997:273:::0;;;:::o;17079:350::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;17162:7:::1;:25:::0;;::::1;17198:29:::0;;::::1;::::0;::::1;-1:-1:-1::0;;17198:29:0;;;17162:25;;::::1;17198:29:::0;::::1;::::0;;17254:19:::1;17218:9:::0;17180:7;17254:19:::1;:::i;:::-;17238:7;:35:::0;;-1:-1:-1;;17238:35:0::1;::::0;::::1;::::0;;::::1;;;::::0;;17319:9:::1;:17:::0;-1:-1:-1;;17300:36:0::1;::::0;17319:17;;::::1;::::0;::::1;::::0;17300:16:::1;:36;:::i;:::-;17355:7;:13:::0;17284:52:::1;::::0;;::::1;::::0;-1:-1:-1;17355:13:0;;::::1;;:22:::0;-1:-1:-1;17355:22:0::1;17347:74;;;::::0;-1:-1:-1;;;17347:74:0;;21896:2:1;17347:74:0::1;::::0;::::1;21878:21:1::0;21935:2;21915:18;;;21908:30;21974:34;21954:18;;;21947:62;-1:-1:-1;;;22025:18:1;;;22018:37;22072:19;;17347:74:0::1;21694:403:1::0;18736:253:0;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;18844:19:::1;:33:::0;;-1:-1:-1;;18844:33:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;18888:14:::1;:38:::0;;-1:-1:-1;;18888:38:0::1;::::0;::::1;;;::::0;;18942:39:::1;::::0;2445:41:1;;;18942:39:0::1;::::0;2433:2:1;2418:18;18942:39:0::1;;;;;;;;18736:253:::0;;:::o;19278:129::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;19365:6:::1;19359:3;:12;19351:21;;;::::0;::::1;;19383:10;:16:::0;19278:129::o;16229:191::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;-1:-1:-1;;;;;16314:23:0;::::1;16306:59;;;::::0;-1:-1:-1;;;16306:59:0;;22304:2:1;16306:59:0::1;::::0;::::1;22286:21:1::0;22343:2;22323:18;;;22316:30;22382:25;22362:18;;;22355:53;22425:18;;16306:59:0::1;22102:347:1::0;16306:59:0::1;16376:15;:36:::0;;-1:-1:-1;;;;;;16376:36:0::1;-1:-1:-1::0;;;;;16376:36:0;;;::::1;::::0;;;::::1;::::0;;16229:191::o;27428:182::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;27495:16:::1;::::0;;;::::1;;;27494:17;27486:58;;;::::0;-1:-1:-1;;;27486:58:0;;22656:2:1;27486:58:0::1;::::0;::::1;22638:21:1::0;22695:2;22675:18;;;22668:30;22734;22714:18;;;22707:58;22782:18;;27486:58:0::1;22454:352:1::0;27486:58:0::1;27563:6;::::0;27555:47:::1;::::0;-1:-1:-1;;;;;27563:6:0;;::::1;::::0;27580:21:::1;27555:47:::0;::::1;;;::::0;27563:6:::1;27555:47:::0;27563:6;27555:47;27580:21;27563:6;27555:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27428:182::o:0;26004:111::-;26070:7;;:26;;-1:-1:-1;;;26070:26:0;;;;;391:25:1;;;-1:-1:-1;;;;;26070:7:0;;;;:15;;364:18:1;;26070:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26066:42;;;26004:111;:::o;28142:116::-;28221:7;;:29;;;-1:-1:-1;;;28221:29:0;;;;28194:7;;-1:-1:-1;;;;;28221:7:0;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18029:699::-;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;18229:16;18209;5597:15:::1;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;18199:26;;;;:::i;:::-;18198:47;;;;:::i;:::-;18182:13;:63:::0;;;18297:13;;18280;;5597:15:::1;::::0;:2:::1;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;18270:23;;;;:::i;:::-;18269:41;;;;:::i;:::-;18256:10;:54:::0;;;18329:13:::1;::::0;:27:::1;;18321:73;;;::::0;-1:-1:-1;;;18321:73:0;;23013:2:1;18321:73:0::1;::::0;::::1;22995:21:1::0;23052:2;23032:18;;;23025:30;23091:34;23071:18;;;23064:62;-1:-1:-1;;;23142:18:1;;;23135:31;23183:19;;18321:73:0::1;22811:397:1::0;18321:73:0::1;18438:6;::::0;-1:-1:-1;;;;;18438:6:0::1;12453:7:::0;12471:16;;;;;;;;;;;6250:5:::1;::::0;18428:23:::1;::::0;18448:3:::1;18428:23;:::i;:::-;18427:44;;;;:::i;:::-;18413:10;;:58;;18405:106;;;::::0;-1:-1:-1;;;18405:106:0;;23415:2:1;18405:106:0::1;::::0;::::1;23397:21:1::0;23454:2;23434:18;;;23427:30;23493:34;23473:18;;;23466:62;-1:-1:-1;;;23544:18:1;;;23537:33;23587:19;;18405:106:0::1;23213:399:1::0;18405:106:0::1;18554:9;5597:15;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;18544:19;;;;:::i;:::-;18530:10;;:33;;18522:92;;;::::0;-1:-1:-1;;;18522:92:0;;23819:2:1;18522:92:0::1;::::0;::::1;23801:21:1::0;23858:2;23838:18;;;23831:30;23897:34;23877:18;;;23870:62;-1:-1:-1;;;23948:18:1;;;23941:44;24002:19;;18522:92:0::1;23617:410:1::0;18522:92:0::1;18660:9;5597:15;5535:2;5597;:15;:::i;:::-;5579:34;::::0;5385:11:::1;5579:34;:::i;:::-;18650:19;;;;:::i;:::-;18633:13;;:36;;18625:95;;;::::0;-1:-1:-1;;;18625:95:0;;23819:2:1;18625:95:0::1;::::0;::::1;23801:21:1::0;23858:2;23838:18;;;23831:30;23897:34;23877:18;;;23870:62;-1:-1:-1;;;23948:18:1;;;23941:44;24002:19;;18625:95:0::1;23617:410:1::0;15794:148:0;10423:6;;-1:-1:-1;;;;;10423:6:0;10433:10;10423:20;10415:50;;;;-1:-1:-1;;;10415:50:0;;10477:2:1;10415:50:0;;;10459:21:1;10516:2;10496:18;;;10489:30;-1:-1:-1;;;;;;;;;;;10535:18:1;;;10528:47;10592:18;;10415:50:0;10275:341:1;10415:50:0;-1:-1:-1;;;;;15890:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;15890:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15794:148::o;12806:342::-;-1:-1:-1;;;;;12901:20:0;;12893:69;;;;-1:-1:-1;;;12893:69:0;;24234:2:1;12893:69:0;;;24216:21:1;24273:2;24253:18;;;24246:30;24312:34;24292:18;;;24285:62;-1:-1:-1;;;24363:18:1;;;24356:34;24407:19;;12893:69:0;24032:400:1;12893:69:0;-1:-1:-1;;;;;12981:21:0;;12973:68;;;;-1:-1:-1;;;12973:68:0;;24639:2:1;12973:68:0;;;24621:21:1;24678:2;24658:18;;;24651:30;24717:34;24697:18;;;24690:62;-1:-1:-1;;;24768:18:1;;;24761:32;24810:19;;12973:68:0;24437:398:1;12973:68:0;-1:-1:-1;;;;;13054:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13107:33;;391:25:1;;;13107:33:0;;364:18:1;13107:33:0;;;;;;;12806:342;;;:::o;20105:1797::-;20184:4;-1:-1:-1;;;;;20209:18:0;;20201:68;;;;-1:-1:-1;;;20201:68:0;;25042:2:1;20201:68:0;;;25024:21:1;25081:2;25061:18;;;25054:30;25120:34;25100:18;;;25093:62;-1:-1:-1;;;25171:18:1;;;25164:35;25216:19;;20201:68:0;24840:401:1;20201:68:0;-1:-1:-1;;;;;20288:16:0;;20280:64;;;;-1:-1:-1;;;20280:64:0;;25448:2:1;20280:64:0;;;25430:21:1;25487:2;25467:18;;;25460:30;25526:34;25506:18;;;25499:62;-1:-1:-1;;;25577:18:1;;;25570:33;25620:19;;20280:64:0;25246:399:1;20280:64:0;20372:1;20363:6;:10;20355:64;;;;-1:-1:-1;;;20355:64:0;;25852:2:1;20355:64:0;;;25834:21:1;25891:2;25871:18;;;25864:30;25930:34;25910:18;;;25903:62;-1:-1:-1;;;25981:18:1;;;25974:39;26030:19;;20355:64:0;25650:405:1;20355:64:0;-1:-1:-1;;;;;20518:13:0;;20430:8;20518:13;;;:7;:13;;;;;;20430:8;;;;20518:13;;20514:162;;;20554:4;20548:10;;20514:162;;;-1:-1:-1;;;;;20580:11:0;;;;;;:7;:11;;;;;;;;20576:100;;;20615:4;20608:11;;20576:100;;;-1:-1:-1;20660:4:0;20576:100;20690:20;20701:4;20707:2;20690:10;:20::i;:::-;20686:617;;;20731:14;;;;;;;20727:319;;20771:5;20766:265;;20801:34;;-1:-1:-1;;;20801:34:0;;26262:2:1;20801:34:0;;;26244:21:1;26301:2;26281:18;;;26274:30;26340:26;26320:18;;;26313:54;26384:18;;20801:34:0;26060:348:1;20766:265:0;-1:-1:-1;;;;;20866:31:0;;;;;;:25;:31;;;;;;;;20865:32;:66;;;;-1:-1:-1;;;;;;20902:29:0;;;;;;:25;:29;;;;;;;;20901:30;20865:66;20861:170;;;20956:55;;-1:-1:-1;;;20956:55:0;;26615:2:1;20956:55:0;;;26597:21:1;26654:2;26634:18;;;26627:30;26693:34;26673:18;;;26666:62;-1:-1:-1;;;26744:18:1;;;26737:43;26797:19;;20956:55:0;26413:409:1;20861:170:0;21064:3;:11;;;;21071:4;21064:11;21060:232;;;-1:-1:-1;;;;;21100:27:0;;;;;;:21;:27;;;;;;;;21099:28;:58;;;;-1:-1:-1;;;;;;21132:25:0;;;;;;:21;:25;;;;;;;;21131:26;21099:58;21095:182;;;21200:12;;21190:6;:22;;21182:75;;;;-1:-1:-1;;;21182:75:0;;27029:2:1;21182:75:0;;;27011:21:1;27068:2;27048:18;;;27041:30;27107:34;27087:18;;;27080:62;-1:-1:-1;;;27158:18:1;;;27151:38;27206:19;;21182:75:0;26827:404:1;21182:75:0;21319:4;21315:509;;;21345:6;;;;21340:473;;21376:19;;;;;;;21372:426;;;21469:4;21420:28;12471:16;;;;;;;;;;;21526:13;;21502:37;;21498:281;;21586:10;;21627:31;;;21623:72;;21685:7;21662:30;;21623:72;21721:34;21734:20;21721:12;:34::i;:::-;21541:238;21498:281;21397:401;21372:426;21842:52;21859:4;21865:2;21869:6;21877:3;21882:4;21888:5;21842:16;:52::i;:::-;21835:59;20105:1797;-1:-1:-1;;;;;;;20105:1797:0:o;24419:1163::-;24538:4;24559:20;24570:4;24576:2;24559:10;:20::i;:::-;24555:228;;;24614:11;;:39;;-1:-1:-1;;;24614:39:0;;-1:-1:-1;;;;;27517:15:1;;;24614:39:0;;;27499:34:1;27569:15;;;27549:18;;;27542:43;27601:18;;;27594:34;;;24583:12:0;;24614:11;;;;;:21;;27411:18:1;;24614:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24614:39:0;;;;;;;;-1:-1:-1;;24614:39:0;;;;;;;;;;;;:::i;:::-;;;24610:122;;24721:8;;;24610:122;24704:5;-1:-1:-1;24750:7:0;24746:26;;24761:8;;;24746:26;24581:202;24555:228;-1:-1:-1;;;;;24829:25:0;;24795:12;24829:25;;;:19;:25;;;;;;24810:4;;24829:25;;;:52;;-1:-1:-1;;;;;;24858:23:0;;;;;;:19;:23;;;;;;;;24829:52;24825:99;;;-1:-1:-1;24907:5:0;24825:99;-1:-1:-1;;;;;24936:13:0;;:7;:13;;;;;;;;;;:23;;24953:6;;24936:7;:23;;24953:6;;24936:23;:::i;:::-;;;;-1:-1:-1;24995:6:0;;-1:-1:-1;25012:98:0;;;;25057:41;25067:4;25073:6;25081:3;25086:4;25092:5;25057:9;:41::i;:::-;25040:58;;25012:98;-1:-1:-1;;;;;25120:11:0;;:7;:11;;;;;;;;;;:29;;25135:14;;25120:7;:29;;25135:14;;25120:29;:::i;:::-;;;;;;;;25180:2;-1:-1:-1;;;;;25165:34:0;25174:4;-1:-1:-1;;;;;25165:34:0;;25184:14;25165:34;;;;391:25:1;;379:2;364:18;;245:177;25165:34:0;;;;;;;;25215:16;;;;;;;25210:298;;25248:28;25267:4;25273:2;25248:18;:28::i;:::-;25296:16;;;;;;;25295:17;:41;;;;;25316:20;25327:4;25333:2;25316:10;:20::i;:::-;25295:77;;;;-1:-1:-1;;;;;;25341:31:0;;;;;;:25;:31;;;;;;;;25340:32;25295:77;:111;;;;-1:-1:-1;;;;;;25377:29:0;;;;;;:25;:29;;;;;;;;25376:30;25295:111;:121;;;;;25411:5;25410:6;25295:121;25291:206;;;25437:44;;-1:-1:-1;;;25437:44:0;;27971:2:1;25437:44:0;;;27953:21:1;28010:2;27990:18;;;27983:30;28049:34;28029:18;;;28022:62;-1:-1:-1;;;28100:18:1;;;28093:32;28142:19;;25437:44:0;27769:398:1;25291:206:0;25518:24;25533:4;25539:2;25518:14;:24::i;:::-;-1:-1:-1;25570:4:0;;24419:1163;-1:-1:-1;;;;;;;;24419:1163:0:o;19415:446::-;19516:6;;19484:4;;-1:-1:-1;;;;;19508:14:0;;;19516:6;;19508:14;;;;:43;;-1:-1:-1;19545:6:0;;-1:-1:-1;;;;;19539:12:0;;;19545:6;;19539:12;;19508:43;:79;;;;-1:-1:-1;19581:6:0;;-1:-1:-1;;;;;19581:6:0;19568:9;:19;;19508:79;:118;;;;-1:-1:-1;;;;;;19605:21:0;;;;;;:17;:21;;;;;;;;19604:22;19508:118;:159;;;;-1:-1:-1;;;;;;19644:23:0;;;;;;:17;:23;;;;;;;;19643:24;19508:159;:186;;;;-1:-1:-1;;;;;;19684:10:0;;6389:42;19684:10;;19508:186;:219;;;;-1:-1:-1;;;;;;19711:16:0;;;;19508:219;:257;;;;-1:-1:-1;;;;;;19744:21:0;;19760:4;19744:21;;19508:257;:302;;;;-1:-1:-1;19798:11:0;;-1:-1:-1;;;;;19782:28:0;;;19798:11;;;;;19782:28;;19508:302;:345;;;;-1:-1:-1;;19841:11:0;;;;;-1:-1:-1;;;;;19841:11:0;;;19827:26;;;;;19415:446;-1:-1:-1;19415:446:0:o;21910:1118::-;7143:6;:13;;-1:-1:-1;;7143:13:0;7152:4;7143:13;;;21993:30:::1;::::0;;::::1;::::0;::::1;::::0;;22016:7:::1;21993:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;7143:6;22038:17;22034:56:::1;;22072:7;;;22034:56;22134:4;22114:26;::::0;;;:11:::1;:26;::::0;;;;;;;22149:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;22149:9:0::1;22114:46:::0;;;;;;;;-1:-1:-1;;22114:67:0::1;22110:166;;22218:4;22198:26;::::0;;;:11:::1;:26;::::0;;;;;;;22233:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;22233:9:0::1;22198:46:::0;;;;;;;-1:-1:-1;;22198:66:0;;22110:166:::1;22312:16;::::0;;22326:1:::1;22312:16:::0;;;;;::::1;::::0;;22288:21:::1;::::0;22312:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22312:16:0::1;22288:40;;22357:4;22339;22344:1;22339:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;22339:23:0::1;;;-1:-1:-1::0;;;;;22339:23:0::1;;;::::0;::::1;22383:9;;;;;;;;;-1:-1:-1::0;;;;;22383:9:0::1;-1:-1:-1::0;;;;;22383:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22373:4;22378:1;22373:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22373:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;22416:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;22416:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;22491:20;;22526:1:::1;::::0;22542:4;;22569::::1;::::0;22589:15:::1;::::0;22416:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;22412:246;;22640:7;;;;22412:246;22803:12;::::0;::::1;::::0;22785:14;;22691:21:::1;::::0;22670:18:::1;::::0;;;22771:44:::1;::::0;;::::1;::::0;22772:27:::1;::::0;::::1;22691:21:::0;22772:27:::1;:::i;:::-;22771:44;;;;:::i;:::-;22832:14:::0;;22746:69;;-1:-1:-1;22832:18:0::1;;::::0;22828:103:::1;;22871:7;;;;;;;;;-1:-1:-1::0;;;;;22871:7:0::1;-1:-1:-1::0;;;;;22871:12:0::1;;22891:14;22871:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22867:53:::0;::::1;22954:15;::::0;:66:::1;::::0;-1:-1:-1;;;;;22954:15:0;;::::1;::::0;23010:5:::1;::::0;22982:21:::1;::::0;22954:66:::1;::::0;;;22982:21;22954:15;23010:5;22954:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;7167:1:0::1;-1:-1:-1::0;7179:6:0;:14;;-1:-1:-1;;7179:14:0;;;21910:1118::o;26123:842::-;26223:7;26243:18;26276:3;26272:205;;;-1:-1:-1;26309:9:0;:16;;;26272:205;;;26347:4;26343:134;;;-1:-1:-1;26381:9:0;:17;;;;;;26343:134;;;-1:-1:-1;26444:9:0;:21;;;;;;26343:134;26493:10;26507:1;26493:15;26489:61;;26532:6;26525:13;;;;;26489:61;26574:11;;;;;-1:-1:-1;;;;;26574:11:0;26598:4;26566:37;:110;;;;;26621:13;26638:1;26621:18;:54;;;;26656:13;26673:2;26656:19;26621:54;26562:138;;;-1:-1:-1;26693:4:0;26562:138;26710:17;6250:5;26730:19;26739:10;26730:6;:19;:::i;:::-;:38;;;;:::i;:::-;26710:58;-1:-1:-1;26783:13:0;;26779:141;;26829:4;26813:7;:22;;;;;;;;;;:35;;26839:9;;26813:7;:35;;26839:9;;26813:35;:::i;:::-;;;;-1:-1:-1;;26868:40:0;;391:25:1;;;26891:4:0;;-1:-1:-1;;;;;26868:40:0;;;;;379:2:1;364:18;26868:40:0;;;;;;;26779:141;26939:18;26948:9;26939:6;:18;:::i;:::-;26932:25;;;;26123:842;;;;;;;;:::o;23036:634::-;23118:16;;;;;;;23117:17;23109:65;;;;-1:-1:-1;;;23109:65:0;;29615:2:1;23109:65:0;;;29597:21:1;29654:2;29634:18;;;29627:30;29693:34;29673:18;;;29666:62;-1:-1:-1;;;29744:18:1;;;29737:33;29787:19;;23109:65:0;29413:399:1;23109:65:0;23190:20;23201:4;23207:2;23190:10;:20::i;:::-;23189:21;:37;;;;-1:-1:-1;23220:6:0;;-1:-1:-1;;;;;23214:12:0;;;23220:6;;23214:12;23189:37;23185:478;;;-1:-1:-1;;;;;23243:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;23243:30:0;23269:4;23243:30;;;23288:16;:23;;-1:-1:-1;;23288:23:0;;;;;;;23338:11;;;;23326:115;;23385:11;:40;;-1:-1:-1;;;;;;23385:40:0;23419:4;23385:40;;;;;23326:115;23467:7;;-1:-1:-1;;;;;23467:7:0;23455:104;;23511:7;:32;;-1:-1:-1;;;;;;23511:32:0;23537:4;23511:32;;;23455:104;23573:19;:26;;-1:-1:-1;;23573:26:0;;;;;23619:32;;-1:-1:-1;2445:41:1;;23619:32:0;;2433:2:1;2418:18;23619:32:0;2305:187:1;25590:406:0;-1:-1:-1;;;;;25665:30:0;;;;;;:24;:30;;;;;;;;25660:113;;25716:7;;-1:-1:-1;;;;;25736:13:0;;;25716:7;25736:13;;;;;;;;;;;;;25716:34;;-1:-1:-1;;;25716:34:0;;;;;17382:74:1;;;;17472:18;;;17465:34;25716:7:0;;;:13;;17355:18:1;;25716:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25712:50;;-1:-1:-1;;;;;25788:28:0;;;;;;:24;:28;;;;;;;;25783:107;;25837:7;;-1:-1:-1;;;;;25855:11:0;;;25837:7;25855:11;;;;;;;;;;;;;25837:30;;-1:-1:-1;;;25837:30:0;;;;;17382:74:1;;;;17472:18;;;17465:34;25837:7:0;;;:13;;17355:18:1;;25837:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25833:46;;25904:14;;;;25900:89;;;25939:7;;25955:10;;25939:27;;-1:-1:-1;;;25939:27:0;;-1:-1:-1;;;;;25939:7:0;;;;:15;;:27;;;;391:25:1;;;379:2;364:18;;245:177;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:250::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1486:11;;;1480:18;1467:11;;;1460:39;1432:2;1425:10;1396:113;;;-1:-1:-1;;1543:1:1;1525:16;;1518:27;1301:250::o;1556:271::-;1598:3;1636:5;1630:12;1663:6;1658:3;1651:19;1679:76;1748:6;1741:4;1736:3;1732:14;1725:4;1718:5;1714:16;1679:76;:::i;:::-;1809:2;1788:15;-1:-1:-1;;1784:29:1;1775:39;;;;1816:4;1771:50;;1556:271;-1:-1:-1;;1556:271:1:o;1832:220::-;1981:2;1970:9;1963:21;1944:4;2001:45;2042:2;2031:9;2027:18;2019:6;2001:45;:::i;2497:154::-;-1:-1:-1;;;;;2576:5:1;2572:54;2565:5;2562:65;2552:93;;2641:1;2638;2631:12;2656:315;2724:6;2732;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2840:9;2827:23;2859:31;2884:5;2859:31;:::i;:::-;2909:5;2961:2;2946:18;;;;2933:32;;-1:-1:-1;;;2656:315:1:o;2976:247::-;3035:6;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;3143:9;3130:23;3162:31;3187:5;3162:31;:::i;3228:388::-;3296:6;3304;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3412:9;3399:23;3431:31;3456:5;3431:31;:::i;:::-;3481:5;-1:-1:-1;3538:2:1;3523:18;;3510:32;3551:33;3510:32;3551:33;:::i;3621:456::-;3698:6;3706;3714;3767:2;3755:9;3746:7;3742:23;3738:32;3735:52;;;3783:1;3780;3773:12;3735:52;3822:9;3809:23;3841:31;3866:5;3841:31;:::i;:::-;3891:5;-1:-1:-1;3948:2:1;3933:18;;3920:32;3961:33;3920:32;3961:33;:::i;:::-;3621:456;;4013:7;;-1:-1:-1;;;4067:2:1;4052:18;;;;4039:32;;3621:456::o;4082:127::-;4143:10;4138:3;4134:20;4131:1;4124:31;4174:4;4171:1;4164:15;4198:4;4195:1;4188:15;4214:275;4285:2;4279:9;4350:2;4331:13;;-1:-1:-1;;4327:27:1;4315:40;;4385:18;4370:34;;4406:22;;;4367:62;4364:88;;;4432:18;;:::i;:::-;4468:2;4461:22;4214:275;;-1:-1:-1;4214:275:1:o;4494:183::-;4554:4;4587:18;4579:6;4576:30;4573:56;;;4609:18;;:::i;:::-;-1:-1:-1;4654:1:1;4650:14;4666:4;4646:25;;4494:183::o;4682:662::-;4736:5;4789:3;4782:4;4774:6;4770:17;4766:27;4756:55;;4807:1;4804;4797:12;4756:55;4843:6;4830:20;4869:4;4893:60;4909:43;4949:2;4909:43;:::i;:::-;4893:60;:::i;:::-;4987:15;;;5073:1;5069:10;;;;5057:23;;5053:32;;;5018:12;;;;5097:15;;;5094:35;;;5125:1;5122;5115:12;5094:35;5161:2;5153:6;5149:15;5173:142;5189:6;5184:3;5181:15;5173:142;;;5255:17;;5243:30;;5293:12;;;;5206;;5173:142;;;-1:-1:-1;5333:5:1;4682:662;-1:-1:-1;;;;;;4682:662:1:o;5349:1215::-;5467:6;5475;5528:2;5516:9;5507:7;5503:23;5499:32;5496:52;;;5544:1;5541;5534:12;5496:52;5584:9;5571:23;5613:18;5654:2;5646:6;5643:14;5640:34;;;5670:1;5667;5660:12;5640:34;5708:6;5697:9;5693:22;5683:32;;5753:7;5746:4;5742:2;5738:13;5734:27;5724:55;;5775:1;5772;5765:12;5724:55;5811:2;5798:16;5833:4;5857:60;5873:43;5913:2;5873:43;:::i;5857:60::-;5951:15;;;6033:1;6029:10;;;;6021:19;;6017:28;;;5982:12;;;;6057:19;;;6054:39;;;6089:1;6086;6079:12;6054:39;6113:11;;;;6133:217;6149:6;6144:3;6141:15;6133:217;;;6229:3;6216:17;6246:31;6271:5;6246:31;:::i;:::-;6290:18;;6166:12;;;;6328;;;;6133:217;;;6369:5;-1:-1:-1;;6412:18:1;;6399:32;;-1:-1:-1;;6443:16:1;;;6440:36;;;6472:1;6469;6462:12;6440:36;;6495:63;6550:7;6539:8;6528:9;6524:24;6495:63;:::i;:::-;6485:73;;;5349:1215;;;;;:::o;6758:159::-;6825:20;;6885:6;6874:18;;6864:29;;6854:57;;6907:1;6904;6897:12;6854:57;6758:159;;;:::o;6922:328::-;6996:6;7004;7012;7065:2;7053:9;7044:7;7040:23;7036:32;7033:52;;;7081:1;7078;7071:12;7033:52;7104:28;7122:9;7104:28;:::i;:::-;7094:38;;7151:37;7184:2;7173:9;7169:18;7151:37;:::i;:::-;7141:47;;7207:37;7240:2;7229:9;7225:18;7207:37;:::i;:::-;7197:47;;6922:328;;;;;:::o;7255:248::-;7323:6;7331;7384:2;7372:9;7363:7;7359:23;7355:32;7352:52;;;7400:1;7397;7390:12;7352:52;-1:-1:-1;;7423:23:1;;;7493:2;7478:18;;;7465:32;;-1:-1:-1;7255:248:1:o;7508:180::-;7567:6;7620:2;7608:9;7599:7;7595:23;7591:32;7588:52;;;7636:1;7633;7626:12;7588:52;-1:-1:-1;7659:23:1;;7508:180;-1:-1:-1;7508:180:1:o;7693:382::-;7758:6;7766;7819:2;7807:9;7798:7;7794:23;7790:32;7787:52;;;7835:1;7832;7825:12;7787:52;7874:9;7861:23;7893:31;7918:5;7893:31;:::i;8080:711::-;8373:3;8362:9;8355:22;8336:4;8400:46;8441:3;8430:9;8426:19;8418:6;8400:46;:::i;:::-;8494:9;8486:6;8482:22;8477:2;8466:9;8462:18;8455:50;8528:33;8554:6;8546;8528:33;:::i;:::-;8514:47;;8609:9;8601:6;8597:22;8592:2;8581:9;8577:18;8570:50;8643:33;8669:6;8661;8643:33;:::i;:::-;8629:47;;8724:9;8716:6;8712:22;8707:2;8696:9;8692:18;8685:50;8752:33;8778:6;8770;8752:33;:::i;9043:316::-;9120:6;9128;9136;9189:2;9177:9;9168:7;9164:23;9160:32;9157:52;;;9205:1;9202;9195:12;9157:52;-1:-1:-1;;9228:23:1;;;9298:2;9283:18;;9270:32;;-1:-1:-1;9349:2:1;9334:18;;;9321:32;;9043:316;-1:-1:-1;9043:316:1:o;9364:256::-;9430:6;9438;9491:2;9479:9;9470:7;9466:23;9462:32;9459:52;;;9507:1;9504;9497:12;9459:52;9530:28;9548:9;9530:28;:::i;:::-;9520:38;;9577:37;9610:2;9599:9;9595:18;9577:37;:::i;:::-;9567:47;;9364:256;;;;;:::o;9885:385::-;9971:6;9979;9987;9995;10048:3;10036:9;10027:7;10023:23;10019:33;10016:53;;;10065:1;10062;10055:12;10016:53;-1:-1:-1;;10088:23:1;;;10158:2;10143:18;;10130:32;;-1:-1:-1;10209:2:1;10194:18;;10181:32;;10260:2;10245:18;10232:32;;-1:-1:-1;9885:385:1;-1:-1:-1;9885:385:1:o;10894:127::-;10955:10;10950:3;10946:20;10943:1;10936:31;10986:4;10983:1;10976:15;11010:4;11007:1;11000:15;11026:422;11115:1;11158:5;11115:1;11172:270;11193:7;11183:8;11180:21;11172:270;;;11252:4;11248:1;11244:6;11240:17;11234:4;11231:27;11228:53;;;11261:18;;:::i;:::-;11311:7;11301:8;11297:22;11294:55;;;11331:16;;;;11294:55;11410:22;;;;11370:15;;;;11172:270;;;11176:3;11026:422;;;;;:::o;11453:806::-;11502:5;11532:8;11522:80;;-1:-1:-1;11573:1:1;11587:5;;11522:80;11621:4;11611:76;;-1:-1:-1;11658:1:1;11672:5;;11611:76;11703:4;11721:1;11716:59;;;;11789:1;11784:130;;;;11696:218;;11716:59;11746:1;11737:10;;11760:5;;;11784:130;11821:3;11811:8;11808:17;11805:43;;;11828:18;;:::i;:::-;-1:-1:-1;;11884:1:1;11870:16;;11899:5;;11696:218;;11998:2;11988:8;11985:16;11979:3;11973:4;11970:13;11966:36;11960:2;11950:8;11947:16;11942:2;11936:4;11933:12;11929:35;11926:77;11923:159;;;-1:-1:-1;12035:19:1;;;12067:5;;11923:159;12114:34;12139:8;12133:4;12114:34;:::i;:::-;12184:6;12180:1;12176:6;12172:19;12163:7;12160:32;12157:58;;;12195:18;;:::i;:::-;12233:20;;11453:806;-1:-1:-1;;;11453:806:1:o;12264:140::-;12322:5;12351:47;12392:4;12382:8;12378:19;12372:4;12351:47;:::i;12409:168::-;12482:9;;;12513;;12530:15;;;12524:22;;12510:37;12500:71;;12551:18;;:::i;12582:128::-;12649:9;;;12670:11;;;12667:37;;;12684:18;;:::i;13065:127::-;13126:10;13121:3;13117:20;13114:1;13107:31;13157:4;13154:1;13147:15;13181:4;13178:1;13171:15;13544:197;13582:3;13610:6;13651:2;13644:5;13640:14;13678:2;13669:7;13666:15;13663:41;;13684:18;;:::i;:::-;13733:1;13720:15;;13544:197;-1:-1:-1;;;13544:197:1:o;14444:217::-;14484:1;14510;14500:132;;14554:10;14549:3;14545:20;14542:1;14535:31;14589:4;14586:1;14579:15;14617:4;14614:1;14607:15;14500:132;-1:-1:-1;14646:9:1;;14444:217::o;15520:184::-;15590:6;15643:2;15631:9;15622:7;15618:23;15614:32;15611:52;;;15659:1;15656;15649:12;15611:52;-1:-1:-1;15682:16:1;;15520:184;-1:-1:-1;15520:184:1:o;15709:510::-;15763:5;15816:3;15809:4;15801:6;15797:17;15793:27;15783:55;;15834:1;15831;15824:12;15783:55;15863:6;15857:13;15889:18;15885:2;15882:26;15879:52;;;15911:18;;:::i;:::-;15955:55;15998:2;15979:13;;-1:-1:-1;;15975:27:1;16004:4;15971:38;15955:55;:::i;:::-;16035:2;16026:7;16019:19;16081:3;16074:4;16069:2;16061:6;16057:15;16053:26;16050:35;16047:55;;;16098:1;16095;16088:12;16047:55;16111:77;16185:2;16178:4;16169:7;16165:18;16158:4;16150:6;16146:17;16111:77;:::i;16224:971::-;16361:6;16369;16377;16385;16438:3;16426:9;16417:7;16413:23;16409:33;16406:53;;;16455:1;16452;16445:12;16406:53;16488:9;16482:16;16517:18;16558:2;16550:6;16547:14;16544:34;;;16574:1;16571;16564:12;16544:34;16597:61;16650:7;16641:6;16630:9;16626:22;16597:61;:::i;:::-;16587:71;;16704:2;16693:9;16689:18;16683:25;16667:41;;16733:2;16723:8;16720:16;16717:36;;;16749:1;16746;16739:12;16717:36;16772:63;16827:7;16816:8;16805:9;16801:24;16772:63;:::i;:::-;16762:73;;16881:2;16870:9;16866:18;16860:25;16844:41;;16910:2;16900:8;16897:16;16894:36;;;16926:1;16923;16916:12;16894:36;16949:63;17004:7;16993:8;16982:9;16978:24;16949:63;:::i;:::-;16939:73;;17058:2;17047:9;17043:18;17037:25;17021:41;;17087:2;17077:8;17074:16;17071:36;;;17103:1;17100;17093:12;17071:36;;17126:63;17181:7;17170:8;17159:9;17155:24;17126:63;:::i;:::-;17116:73;;;16224:971;;;;;;;:::o;20020:245::-;20099:6;20107;20160:2;20148:9;20139:7;20135:23;20131:32;20128:52;;;20176:1;20173;20166:12;20128:52;-1:-1:-1;;20199:16:1;;20255:2;20240:18;;;20234:25;20199:16;;20234:25;;-1:-1:-1;20020:245:1:o;20270:251::-;20340:6;20393:2;20381:9;20372:7;20368:23;20364:32;20361:52;;;20409:1;20406;20399:12;20361:52;20441:9;20435:16;20460:31;20485:5;20460:31;:::i;20882:245::-;20949:6;21002:2;20990:9;20981:7;20977:23;20973:32;20970:52;;;21018:1;21015;21008:12;20970:52;21050:9;21044:16;21069:28;21091:5;21069:28;:::i;21132:131::-;21192:5;21221:36;21248:8;21242:4;21221:36;:::i;21521:168::-;21588:6;21614:10;;;21626;;;21610:27;;21649:11;;;21646:37;;;21663:18;;:::i;:::-;21646:37;21521:168;;;;:::o;27639:125::-;27704:9;;;27725:10;;;27722:36;;;27738:18;;:::i;28172:1026::-;28434:4;28482:3;28471:9;28467:19;28513:6;28502:9;28495:25;28539:2;28577:6;28572:2;28561:9;28557:18;28550:34;28620:3;28615:2;28604:9;28600:18;28593:31;28644:6;28679;28673:13;28710:6;28702;28695:22;28748:3;28737:9;28733:19;28726:26;;28787:2;28779:6;28775:15;28761:29;;28808:1;28818:218;28832:6;28829:1;28826:13;28818:218;;;28897:13;;-1:-1:-1;;;;;28893:62:1;28881:75;;29011:15;;;;28976:12;;;;28854:1;28847:9;28818:218;;;-1:-1:-1;;;;;;;29092:55:1;;;;29087:2;29072:18;;29065:83;-1:-1:-1;;;29179:3:1;29164:19;29157:35;29053:3;28172:1026;-1:-1:-1;;;28172:1026:1:o
Swarm Source
ipfs://11e0b96d4291447fadff23f12313e88240b95054f7bd4ed15d236d90679b060b
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.