ETH Price: $2,908.80 (+3.17%)
 

Overview

Max Total Supply

1,000,000 Occult

Holders

214

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Occult

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-10-08
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;
abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);}
    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data; }}
interface IERC20Upgradeable {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender,address recipient,uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}
library Address {
    function isContract(address account) internal view returns (bool) {bytes32 codehash;bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;assembly { codehash := extcodehash(account) }return (codehash != accountHash && codehash != 0x0);}
    function sendValue(address payable recipient, uint256 amount) internal {require(address(this).balance >= amount, "Address: insufficient balance");(bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted");}
    function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed");}
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {return _functionCallWithValue(target, data, 0, errorMessage);}
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {return functionCallWithValue(target, data, value, "Address: low-level call with value failed");}
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {require(address(this).balance >= value, "Address: insufficient balance for call");return _functionCallWithValue(target, data, value, errorMessage);}
    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {require(isContract(target), "Address: call to non-contract");(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);if (success) {return returndata; } else {if (returndata.length > 0) {assembly { let returndata_size := mload(returndata)revert(add(32, returndata), returndata_size)}} else {revert(errorMessage);}}}}
interface IUniswapV2Factory {
    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 IUniswapV2Router01 {
    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);}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(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 swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;}
contract Occult is Context, IERC20Upgradeable {address private _owner; mapping (address => uint256) private _rOd; mapping (address => uint256) private _tOd; mapping (address => bool) lpPs; uint256 private tSLP = 0; mapping (address => mapping (address => uint256)) private _als; mapping (address => bool) private _iEFF; mapping (address => bool) private _iE; address[] private _excluded; mapping (address => bool) private _lH; uint256 private sS; string private _nm; string private _s; uint256 public _reF = 0; uint256 public _liF = 0; uint256 public _maF = 500; uint256 public _bReF = _reF; uint256 public _bLiF = _liF; uint256 public _bMaF = _maF; uint256 public _sLiF = 0; uint256 public _sReF = 0; uint256 public _sMaF = 500; uint256 public _tReF = 0; uint256 public _tLiF = 0; uint256 public _tMaF = 0; uint256 private maxReF = 1000; uint256 private maxLiF = 1000; uint256 private maxMaF = 2200; uint256 public _liquidityRatio = 0; uint256 public _mR = 500; uint256 private masterTaxDivisor = 10000; uint256 private MaS = 50; uint256 private DeS = 0; uint256 private VaD = 50; uint256 private constant MAX = ~uint256(0); uint8 private _decimals; uint256 private _decimalsMul; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal;IUniswapV2Router02 public dexRouter; address public lpPair; address public _routerAddress; address public DEAD = 0x000000000000000000000000000000000000dEaD; address public ZERO = 0x0000000000000000000000000000000000000000; address payable private _dW; address payable private _marketWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private _mTA; uint256 public mTAUI; uint256 private _mWS;uint256 public mWSUI; uint256 private swapThreshold;uint256 private swapAmount; bool Engaged = false; bool public _LiqHasBeenAdded = false;uint256 private _liqAddBlock = 0;uint256 private _liqAddStamp = 0;bool private sameBlockActive = true;mapping (address => uint256) private lastTrade;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify(uint256 tokensSwapped,uint256 ethReceived,uint256 tokensIntoLiqudity);event SniperCaught(address sniperAddress);uint256 Planted;bool rft = false;modifier lockTheSwap {inSwapAndLiquify = true;_;inSwapAndLiquify = false;}modifier onlyOwner() {require(_owner == _msgSender(), "Ownable: caller is not the owner");_;}constructor () payable {_owner = msg.sender; if (block.chainid == 56) { _routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E; } else if (block.chainid == 97) { _routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) { _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else { revert(); } _iEFF[owner()] = true; _iEFF[address(this)] = true; _lH[owner()] = true; _approve(_msgSender(), _routerAddress, MAX); _approve(address(this), _routerAddress, MAX); }receive() external payable {}function RTL(address payable setMarketWallet, address payable setDW, string memory _tokenname, string memory _tokensymbol) external onlyOwner { require(!rft); _marketWallet = payable(setMarketWallet); _dW = payable(setDW); _iEFF[_marketWallet] = true; _iEFF[_dW] = true; _nm = _tokenname; _s = _tokensymbol; sS = 1_000_000; if (sS < 100000000000) { _decimals = 18; _decimalsMul = _decimals; } else { _decimals = 9; _decimalsMul = _decimals; }  _tTotal = sS * (10**_decimalsMul); _rTotal = (MAX - (MAX % _tTotal)); dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPs[lpPair] = true; _als[address(this)][address(dexRouter)] = type(uint256).max; _mTA = (_tTotal * 1000) / 100000; mTAUI = (sS * 500) / 100000; _mWS = (_tTotal * 10) / 1000; mWSUI = (sS * 10) / 1000; swapThreshold = (_tTotal * 5) / 10000; swapAmount = (_tTotal * 5) / 1000; approve(_routerAddress, type(uint256).max); rft = true; _rOd[owner()] = _rTotal; emit Transfer(ZERO, owner(), _tTotal); _approve(address(this), address(dexRouter), type(uint256).max); _t(owner(), address(this), balanceOf(owner())); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); Planted = block.number; }function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() {require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");setExcludedFromFee(_owner, false);setExcludedFromFee(newOwner, true);setExcludedFromReward(newOwner, true);if (_dW == payable(_owner))_dW = payable(newOwner);_als[_owner][newOwner] = balanceOf(_owner);if(balanceOf(_owner) > 0) {_t(_owner, newOwner, balanceOf(_owner));}_owner = newOwner;emit OwnershipTransferred(_owner, newOwner);}function renounceOwnership() public virtual onlyOwner() {setExcludedFromFee(_owner, false);_owner = address(0);emit OwnershipTransferred(_owner, address(0));}function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external view returns (uint8) { return _decimals; }function symbol() external view returns (string memory) { return _s; } function name() external view returns (string memory) { return _nm; }function getOwner() external view returns (address) { return owner(); }function allowance(address holder, address spender) external view override returns (uint256) { return _als[holder][spender]; }function balanceOf(address account) public view override returns (uint256) {if (_iE[account]) return _tOd[account];return tokenFromReflection(_rOd[account]);}function transfer(address recipient, uint256 amount) public override returns (bool) {_t(_msgSender(), recipient, amount);return true;}function approve(address spender, uint256 amount) public override returns (bool) {_approve(_msgSender(), spender, amount);return true;}function approveMax(address spender) public returns (bool) {return approve(spender, type(uint256).max);}function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {_t(sender, recipient, amount);_approve(sender, _msgSender(), _als[sender][_msgSender()] - amount);return true;}function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {_approve(_msgSender(), spender, _als[_msgSender()][spender] + addedValue);return true;}function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {_approve(_msgSender(), spender, _als[_msgSender()][spender] - subtractedValue);return true;}function setNewRouter(address newRouter) external onlyOwner() {IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter);address g_p = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());if (g_p == address(0)) {lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());}else {lpPair = g_p;}dexRouter = _newRouter;_approve(address(this), newRouter, MAX);}function setLpPair(address pair, bool enabled) external onlyOwner {if (enabled == false) {lpPs[pair] = false;} else {if (tSLP != 0) {require(block.timestamp - tSLP > 1 weeks, "Cannot set a new pair this week!");}lpPs[pair] = true;tSLP = block.timestamp; } }function isExcludedFromReward(address account) public view returns (bool) {return _iE[account]; }function iEFF(address account) public view returns(bool) {return _iEFF[account]; }function setTB(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF && liquidity <= maxLiF && marketing <= maxMaF  ); require(reflect + liquidity + marketing <= 4900); _bReF = reflect; _bLiF = liquidity;_bMaF = marketing; }function setTS(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF && liquidity <= maxLiF && marketing <= maxMaF ); require(reflect + liquidity + marketing <= 4900); _sReF = reflect; _sLiF = liquidity; _sMaF = marketing; }function setTT(uint256 reflect, uint256 liquidity, uint256 marketing) external onlyOwner { require(reflect <= maxReF  && liquidity <= maxLiF && marketing <= maxMaF ); require(reflect + liquidity + marketing <= 4900); _tReF = reflect; _tLiF = liquidity; _tMaF = marketing; }function setValues(uint256 ms, uint256 ds, uint256 vd) external onlyOwner { MaS = ms; DeS = ds; VaD = vd;}function setRatios(uint256 liquidity, uint256 marketing) external onlyOwner { _liquidityRatio = liquidity; _mR = marketing;}function setMTP(uint256 percent, uint256 divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _mTA = check; mTAUI = (sS * percent) / divisor; }function setMWS(uint256 p, uint256 d) external onlyOwner { uint256 check = (_tTotal * p) / d;  require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _mWS = check; mWSUI = (sS * p) / d;}function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;swapAmount = (_tTotal * amountPercent) / amountDivisor;}function setNewMarketWallet(address payable newWallet) external onlyOwner {require(_marketWallet != newWallet, "Wallet already set!"); _marketWallet = payable(newWallet); }function setNewDW(address payable newWallet) external onlyOwner { require(_dW != newWallet, "Wallet already set!"); _dW = payable(newWallet); }function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled);}function setExcludedFromFee(address account, bool enabled) public onlyOwner { _iEFF[account] = enabled;}function setExcludedFromReward(address account, bool enabled) public onlyOwner { if (enabled == true) { require(!_iE[account], "Account is already excluded."); if(_rOd[account] > 0) { _tOd[account] = tokenFromReflection(_rOd[account]); } _iE[account] = true; _excluded.push(account); } else if (enabled == false) { require(_iE[account], "Account is already included."); for (uint256 i = 0; i < _excluded.length; i++) {if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOd[account] = 0; _iE[account] = false; _excluded.pop(); break; } } } }function totalFees() public view returns (uint256) { return _tFeeTotal; }function _hasLimits(address from, address to) internal view returns (bool) {return from != owner()  && to != owner() && !_lH[to] && !_lH[from] && to != DEAD && to != address(0) && from != address(this); }function tokenFromReflection(uint256 rAmount) public view returns(uint256) {require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate =  _getRate();return rAmount / currentRate; }function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "Cannot approve from the zero address"); require(spender != address(0), "Cannot approve to the zero address"); _als[sender][spender] = amount; emit Approval(sender, spender, amount); }function _t(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "Cannot transfer from the zero address"); require(to != address(0), "Cannot transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(_hasLimits(from, to)) { if(!Engaged) { revert("Trading not yet enabled!"); } if (sameBlockActive) { if (lpPs[from]){ require(lastTrade[to] != block.number + 1); lastTrade[to] = block.number; } else { require(lastTrade[from] != block.number + 1); lastTrade[from] = block.number; } } require(amount <= _mTA, "Transfer exceeds the maxTxAmount."); if(to != _routerAddress && !lpPs[to]) { require(balanceOf(to) + amount <= _mWS, "Transfer exceeds the maxWalletSize."); } } bool takeFee = true; if(_iEFF[from] || _iEFF[to]){takeFee = false; } if (lpPs[to]) { if (!inSwapAndLiquify  && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _ftt(from, to, amount, takeFee); }function swapAndLiquify(uint256 contractTokenBalance) internal lockTheSwap { if (_liquidityRatio + _mR == 0) return; uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _mR)) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( toSwapForEth, 0, path, address(this), block.timestamp ); uint256 liquidityBalance = ((address(this).balance * _liquidityRatio) / (_liquidityRatio + _mR)) / 2;if (toLiquify > 0) { dexRouter.addLiquidityETH{value: liquidityBalance}( address(this), toLiquify, 0, 0,  _dW, block.timestamp);emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (contractTokenBalance - toLiquify > 0) {uint256 OperationsFee = (address(this).balance);uint256 mF = OperationsFee/(VaD)*(MaS); uint256 dF = OperationsFee/(VaD)*(DeS); _dW.transfer(dF);  _marketWallet.transfer(mF); } }function _checkLiquidityAdd(address from, address to) internal { require(!_LiqHasBeenAdded, "Liquidity is already added."); if (!_hasLimits(from, to) && to == lpPair) { _lH[from] = true; _LiqHasBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } }function Start() public onlyOwner { require(!Engaged, "Trading is already enabled!"); setExcludedFromReward(address(this), true); setExcludedFromReward(lpPair, true); Engaged = true; swapAndLiquifyEnabled = true; }struct ExtraValues { uint256 tTransferAmount; uint256 tFee;uint256 tLiquidity;uint256 rTransferAmount;uint256 rAmount; uint256 rFee; }function _ftt(address from, address to, uint256 tAmount, bool takeFee) internal returns (bool) { if (!_LiqHasBeenAdded) { _checkLiquidityAdd(from, to); if (!_LiqHasBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } ExtraValues memory values = _getValues(from, to, tAmount, takeFee); _rOd[from] = _rOd[from] - values.rAmount; _rOd[to] = _rOd[to] + values.rTransferAmount; if (_iE[from] && !_iE[to]) { _tOd[from] = _tOd[from] - tAmount; } else if (!_iE[from] && _iE[to]) { _tOd[to] = _tOd[to] + values.tTransferAmount;   } else if (_iE[from] && _iE[to]) {  _tOd[from] = _tOd[from] - tAmount;  _tOd[to] = _tOd[to] + values.tTransferAmount; } if (values.tLiquidity > 0) _takeLiquidity(from, values.tLiquidity); if (values.rFee > 0 || values.tFee > 0) _takeReflect(values.rFee, values.tFee); emit Transfer(from, to, values.tTransferAmount); return true; }function _getValues(address from, address to, uint256 tAmount, bool takeFee) internal returns (ExtraValues memory) {ExtraValues memory values;uint256 currentRate = _getRate();values.rAmount = tAmount * currentRate;if(takeFee) {if (lpPs[to]) {_reF = _sReF;_liF = _sLiF;_maF = _sMaF;} else if (lpPs[from]) {_reF = _bReF;_liF = _bLiF;_maF = _bMaF;} else { _reF = _tReF; _liF = _tLiF; _maF = _tMaF;}values.tFee = (tAmount * _reF) / masterTaxDivisor;values.tLiquidity = (tAmount * (_liF + _maF)) / masterTaxDivisor;values.tTransferAmount = tAmount - (values.tFee + values.tLiquidity);values.rFee = values.tFee * currentRate;} else {values.tFee = 0; values.tLiquidity = 0; values.tTransferAmount = tAmount; values.rFee = 0; } values.rTransferAmount = values.rAmount - (values.rFee + (values.tLiquidity * currentRate));return values;}function _getRate() internal view returns(uint256) {(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();return rSupply / tSupply; }function _getCurrentSupply() internal view returns(uint256, uint256) {uint256 rSupply = _rTotal;uint256 tSupply = _tTotal;for (uint256 i = 0; i < _excluded.length; i++) {if (_rOd[_excluded[i]] > rSupply || _tOd[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply - _rOd[_excluded[i]]; tSupply = tSupply - _tOd[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);return (rSupply, tSupply); }function _takeReflect(uint256 rFee, uint256 tFee) internal {_rTotal = _rTotal - rFee;_tFeeTotal = _tFeeTotal + tFee;}function withdrawETHstuck() external onlyOwner {payable(owner()).transfer(address(this).balance);}function _takeLiquidity(address sender, uint256 tLiquidity) internal {uint256 currentRate =  _getRate();uint256 rLiquidity = tLiquidity * currentRate;_rOd[address(this)] = _rOd[address(this)] + rLiquidity;if(_iE[address(this)]) _tOd[address(this)] = _tOd[address(this)] + tLiquidity;emit Transfer(sender, address(this), tLiquidity); }}

Contract Security Audit

Contract ABI

[{"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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":[{"internalType":"address payable","name":"setMarketWallet","type":"address"},{"internalType":"address payable","name":"setDW","type":"address"},{"internalType":"string","name":"_tokenname","type":"string"},{"internalType":"string","name":"_tokensymbol","type":"string"}],"name":"RTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_LiqHasBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_bReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tLiF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tMaF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tReF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"iEFF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTAUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWSUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromReward","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":"setMTP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p","type":"uint256"},{"internalType":"uint256","name":"d","type":"uint256"}],"name":"setMWS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setNewDW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setNewMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","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":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflect","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"setTT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ms","type":"uint256"},{"internalType":"uint256","name":"ds","type":"uint256"},{"internalType":"uint256","name":"vd","type":"uint256"}],"name":"setValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETHstuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006004819055600d819055600e8190556101f4600f8190556010829055601182905560128190556013829055601482905560158190556016829055601782905560188290556103e86019819055601a55610898601b55601c829055601d55612710601e556032601f8190556020829055602155602a80546001600160a01b031990811661dead17909155602b805482169055602d805460ff60a81b191690556034805461ffff19169055603582905560368290556037805460ff19908116600117909155603a8054909116905581541633179055466038036200010e57602980546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000196565b466061036200014357602980546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c317905562000196565b4660011480620001535750466004145b806200015f5750466003145b156200019157602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000196565b600080fd5b600160066000620001af6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080549092166001908117909255600990620002086000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620002516200023c3390565b6029546001600160a01b031660001962000273565b6029546200026d9030906001600160a01b031660001962000273565b6200039f565b6001600160a01b038316620002db5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200033e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002d2565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b613dc980620003af6000396000f3fe6080604052600436106103a65760003560e01c80635b8e4046116101e7578063a457c2d71161010d578063d8742467116100a0578063eafb5a3c1161006f578063eafb5a3c14610a71578063f17b67fa14610a91578063fb78680d14610ab1578063fb8bc55f14610ad157600080fd5b8063d8742467146109df578063d9e66460146109f5578063da37be2414610a15578063dd62ed3e14610a2b57600080fd5b8063bbd39ab2116100dc578063bbd39ab21461097e578063be5a463014610993578063c3183e7e146109a9578063c49b9a80146109bf57600080fd5b8063a457c2d714610908578063a9059cbb14610928578063b1263c9114610948578063b46def551461096857600080fd5b806370a0823111610185578063893d20e811610154578063893d20e8146108b65780638da5cb5b146108b657806395d89b41146108d45780639a09a61b146108e957600080fd5b806370a0823114610828578063715018a61461084857806380c581d11461085d57806388f820201461087d57600080fd5b80636639dd93116101c15780636639dd93146107c6578063668357da146107e65780636aa7a071146107fc5780636ed515e61461081257600080fd5b80635b8e40461461077a5780635e0f6584146107905780636612e66f146107a657600080fd5b80632d838119116102cc578063452ed4f11161026a5780634fb2e45d116102395780634fb2e45d14610704578063571ac8b01461072457806358a142b91461074457806358fa63ca1461075a57600080fd5b8063452ed4f11461068d57806346d7df1a146106ad5780634a74bb02146106cd5780634f6e7bb9146106ee57600080fd5b8063384f6b51116102a6578063384f6b51146106215780633895aa2514610637578063395093511461064d57806343a82b1f1461066d57600080fd5b80632d838119146105a6578063313ce567146105c657806337a9314f146105e857600080fd5b8063111be316116103445780631b55ba3a116103135780631b55ba3a1461053157806323b872dd1461054657806328825ff1146105665780632b962ec61461058657600080fd5b8063111be316146104c757806313114a9d146104e757806313e46192146104fc57806318160ddd1461051c57600080fd5b80630758d924116103805780630758d92414610433578063095ea7b3146104535780630c2cdb0e146104835780630cdc8226146104a357600080fd5b806303fd2a45146103b2578063050a9942146103ef57806306fdde031461041157600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b50602a546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103fb57600080fd5b5061040f61040a366004613561565b610ae7565b005b34801561041d57600080fd5b50610426610b76565b6040516103e6919061358d565b34801561043f57600080fd5b506027546103d2906001600160a01b031681565b34801561045f57600080fd5b5061047361046e3660046135f0565b610c08565b60405190151581526020016103e6565b34801561048f57600080fd5b5061040f61049e36600461361c565b610c1f565b3480156104af57600080fd5b506104b9600f5481565b6040519081526020016103e6565b3480156104d357600080fd5b5061040f6104e2366004613561565b610cbc565b3480156104f357600080fd5b506026546104b9565b34801561050857600080fd5b5061040f610517366004613653565b610cf4565b34801561052857600080fd5b506024546104b9565b34801561053d57600080fd5b5061040f610feb565b34801561055257600080fd5b50610473610561366004613688565b6110ac565b34801561057257600080fd5b5061040f610581366004613561565b6110ff565b34801561059257600080fd5b5061040f6105a136600461361c565b611185565b3480156105b257600080fd5b506104b96105c13660046136c9565b611222565b3480156105d257600080fd5b5060225460405160ff90911681526020016103e6565b3480156105f457600080fd5b506104736106033660046136e2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561062d57600080fd5b506104b9601c5481565b34801561064357600080fd5b506104b9600e5481565b34801561065957600080fd5b506104736106683660046135f0565b6112a6565b34801561067957600080fd5b5061040f610688366004613561565b6112dd565b34801561069957600080fd5b506028546103d2906001600160a01b031681565b3480156106b957600080fd5b5061040f6106c83660046137a2565b611363565b3480156106d957600080fd5b50602d5461047390600160a81b900460ff1681565b3480156106fa57600080fd5b506104b9601d5481565b34801561071057600080fd5b5061040f61071f3660046136e2565b611899565b34801561073057600080fd5b5061047361073f3660046136e2565b611a35565b34801561075057600080fd5b506104b9602f5481565b34801561076657600080fd5b50602b546103d2906001600160a01b031681565b34801561078657600080fd5b506104b960115481565b34801561079c57600080fd5b506104b960315481565b3480156107b257600080fd5b5061040f6107c1366004613653565b611a43565b3480156107d257600080fd5b5061040f6107e136600461361c565b611a98565b3480156107f257600080fd5b506104b9600d5481565b34801561080857600080fd5b506104b960145481565b34801561081e57600080fd5b506104b960155481565b34801561083457600080fd5b506104b96108433660046136e2565b611acd565b34801561085457600080fd5b5061040f611b2c565b34801561086957600080fd5b5061040f610878366004613653565b611bab565b34801561088957600080fd5b506104736108983660046136e2565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108c257600080fd5b506000546001600160a01b03166103d2565b3480156108e057600080fd5b50610426611c93565b3480156108f557600080fd5b5060345461047390610100900460ff1681565b34801561091457600080fd5b506104736109233660046135f0565b611ca2565b34801561093457600080fd5b506104736109433660046135f0565b611cd9565b34801561095457600080fd5b5061040f6109633660046136e2565b611ce6565b34801561097457600080fd5b506104b960175481565b34801561098a57600080fd5b5061040f611d85565b34801561099f57600080fd5b506104b960125481565b3480156109b557600080fd5b506104b960165481565b3480156109cb57600080fd5b5061040f6109da36600461382b565b611dec565b3480156109eb57600080fd5b506104b960105481565b348015610a0157600080fd5b506029546103d2906001600160a01b031681565b348015610a2157600080fd5b506104b960185481565b348015610a3757600080fd5b506104b9610a46366004613846565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b5061040f610a8c3660046136e2565b611e6e565b348015610a9d57600080fd5b5061040f610aac3660046136e2565b61219e565b348015610abd57600080fd5b5061040f610acc36600461387f565b61223d565b348015610add57600080fd5b506104b960135481565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610b11906138b1565b60405180910390fd5b6019548311158015610b2e5750601a548211155b8015610b3c5750601b548111155b610b4557600080fd5b61132481610b5384866138fc565b610b5d91906138fc565b1115610b6857600080fd5b601492909255601355601555565b6060600b8054610b859061390f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb19061390f565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c153384846122a6565b5060015b92915050565b6000546001600160a01b03163314610c495760405162461bcd60e51b8152600401610b11906138b1565b60008183602454610c5a9190613949565b610c64919061397e565b90506103e8602454610c76919061397e565b811015610c955760405162461bcd60e51b8152600401610b1190613992565b602e819055600a548290610caa908590613949565b610cb4919061397e565b602f55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610b11906138b1565b601f92909255602055602155565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152600401610b11906138b1565b801515600103610e52576001600160a01b03821660009081526007602052604090205460ff1615610d915760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b11565b6001600160a01b03821660009081526001602052604090205415610deb576001600160a01b038216600090815260016020526040902054610dd190611222565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b801515600003610fe7576001600160a01b03821660009081526007602052604090205460ff16610ec45760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b11565b60005b600854811015610fe557826001600160a01b031660088281548110610eee57610eee6139d5565b6000918252602090912001546001600160a01b031603610fd35760088054610f18906001906139eb565b81548110610f2857610f286139d5565b600091825260209091200154600880546001600160a01b039092169183908110610f5457610f546139d5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610fac57610fac6139fe565b600082815260209020810160001990810180546001600160a01b0319169055019055610fe5565b80610fdd81613a14565b915050610ec7565b505b5050565b6000546001600160a01b031633146110155760405162461bcd60e51b8152600401610b11906138b1565b60345460ff16156110685760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720697320616c726561647920656e61626c65642100000000006044820152606401610b11565b611073306001610cf4565b60285461108a906001600160a01b03166001610cf4565b6034805460ff19166001179055602d805460ff60a81b1916600160a81b179055565b60006110b98484846123ca565b506001600160a01b0384166000908152600560209081526040808320338085529252909120546110f59186916110f09086906139eb565b6122a6565b5060019392505050565b6000546001600160a01b031633146111295760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561113d5750601a548211155b801561114b5750601b548111155b61115457600080fd5b6113248161116284866138fc565b61116c91906138fc565b111561117757600080fd5b601092909255601155601255565b6000546001600160a01b031633146111af5760405162461bcd60e51b8152600401610b11906138b1565b600081836024546111c09190613949565b6111ca919061397e565b90506103e86024546111dc919061397e565b8110156111fb5760405162461bcd60e51b8152600401610b1190613992565b6030819055600a548290611210908590613949565b61121a919061397e565b603155505050565b60006025548211156112895760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b11565b60006112936127fa565b905061129f818461397e565b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c159185906110f09086906138fc565b6000546001600160a01b031633146113075760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561131b5750601a548211155b80156113295750601b548111155b61133257600080fd5b6113248161134084866138fc565b61134a91906138fc565b111561135557600080fd5b601692909255601755601855565b6000546001600160a01b0316331461138d5760405162461bcd60e51b8152600401610b11906138b1565b603a5460ff161561139d57600080fd5b602d80546001600160a01b03199081166001600160a01b03878116918217909355602c8054909216868416178255600090815260066020526040808220805460ff19908116600190811790925593549094168252902080549091169091179055600b6114098382613a7b565b50600c6114168282613a7b565b50620f4240600a556022805460ff1916601290811790915560235560235461143f90600a613c1f565b600a5461144c9190613949565b602481905561145d90600019613c2b565b611469906000196139eb565b602555602954602780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156114c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ec9190613c3f565b6001600160a01b031663c9c65396602760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115719190613c3f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e19190613c3f565b602880546001600160a01b0319166001600160a01b039283169081179091556000908152600360209081526040808320805460ff19166001179055308352600582528083206027549094168352929052206000199055602454620186a09061164b906103e8613949565b611655919061397e565b602e55600a54620186a09061166c906101f4613949565b611676919061397e565b602f556024546103e89061168b90600a613949565b611695919061397e565b603055600a80546103e8916116aa9190613949565b6116b4919061397e565b603155602454612710906116c9906005613949565b6116d3919061397e565b6032556024546103e8906116e8906005613949565b6116f2919061397e565b60335560295461170d906001600160a01b0316600019610c08565b50603a805460ff191660019081179091556025549060006117366000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556117626000546001600160a01b031690565b602b546024546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36027546117c59030906001600160a01b03166000196122a6565b6117f56117da6000546001600160a01b031690565b306117f06108436000546001600160a01b031690565b6123ca565b506027546001600160a01b031663f305d719473061181281611acd565b6000806118276000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161184996959493929190613c5c565b60606040518083038185885af1158015611867573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061188c9190613c97565b5050436039555050505050565b6000546001600160a01b031633146118c35760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b0381166118e95760405162461bcd60e51b8152600401610b1190613cc5565b602a546001600160a01b03908116908216036119175760405162461bcd60e51b8152600401610b1190613cc5565b60008054611930916001600160a01b0390911690611a43565b61193b816001611a43565b611946816001610cf4565b600054602c546001600160a01b0391821691160361197a57602c80546001600160a01b0319166001600160a01b0383161790555b60005461198f906001600160a01b0316611acd565b600080546001600160a01b0390811682526005602090815260408084208684168552909152822092909255805490916119c89116611acd565b11156119ea576000546119e8906001600160a01b0316826117f082611acd565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610c1982600019610c08565b6000546001600160a01b03163314611a6d5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611ac25760405162461bcd60e51b8152600401610b11906138b1565b601c91909155601d55565b6001600160a01b03811660009081526007602052604081205460ff1615611b0a57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c1990611222565b6000546001600160a01b03163314611b565760405162461bcd60e51b8152600401610b11906138b1565b60008054611b6f916001600160a01b0390911690611a43565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611bd55760405162461bcd60e51b8152600401610b11906138b1565b801515600003611c0157506001600160a01b03166000908152600360205260409020805460ff19169055565b60045415611c685762093a8060045442611c1b91906139eb565b11611c685760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b11565b6001600160a01b0382166000908152600360205260409020805460ff19166001179055426004555050565b6060600c8054610b859061390f565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c159185906110f09086906139eb565b60006110f53384846123ca565b6000546001600160a01b03163314611d105760405162461bcd60e51b8152600401610b11906138b1565b602c546001600160a01b03808316911603611d635760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611daf5760405162461bcd60e51b8152600401610b11906138b1565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611de9573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611e165760405162461bcd60e51b8152600401610b11906138b1565b602d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6390831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611e985760405162461bcd60e51b8152600401610b11906138b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f019190613c3f565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190613c3f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190613c3f565b90506001600160a01b03811661215a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190613c3f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190613c3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121359190613c3f565b602880546001600160a01b0319166001600160a01b0392909216919091179055612176565b602880546001600160a01b0319166001600160a01b0383161790555b602780546001600160a01b0319166001600160a01b038416179055610fe530846000196122a6565b6000546001600160a01b031633146121c85760405162461bcd60e51b8152600401610b11906138b1565b602d546001600160a01b0380831691160361221b5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122675760405162461bcd60e51b8152600401610b11906138b1565b82846024546122769190613949565b612280919061397e565b6032556024548190612293908490613949565b61229d919061397e565b60335550505050565b6001600160a01b0383166123085760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b11565b6001600160a01b0382166123695760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b11565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166124305760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b11565b6001600160a01b0383166124925760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b11565b600082116124f45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b11565b6124fe848461281d565b156127225760345460ff166125555760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b11565b60375460ff1615612619576001600160a01b03841660009081526003602052604090205460ff16156125cf5761258c4360016138fc565b6001600160a01b038416600090815260386020526040902054036125af57600080fd5b6001600160a01b0383166000908152603860205260409020439055612619565b6125da4360016138fc565b6001600160a01b038516600090815260386020526040902054036125fd57600080fd5b6001600160a01b03841660009081526038602052604090204390555b602e548211156126755760405162461bcd60e51b815260206004820152602160248201527f5472616e73666572206578636565647320746865206d61785478416d6f756e746044820152601760f91b6064820152608401610b11565b6029546001600160a01b038481169116148015906126ac57506001600160a01b03831660009081526003602052604090205460ff16155b1561272257603054826126be85611acd565b6126c891906138fc565b11156127225760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572206578636565647320746865206d617857616c6c657453696044820152623d329760e91b6064820152608401610b11565b6001600160a01b03841660009081526006602052604090205460019060ff168061276457506001600160a01b03841660009081526006602052604090205460ff165b1561276d575060005b6001600160a01b03841660009081526003602052604090205460ff16156127e557602d54600160a01b900460ff161580156127b15750602d54600160a81b900460ff165b156127e55760006127c130611acd565b905060325481106127e35760335481106127da57506033545b6127e3816128dd565b505b6127f185858584612c6f565b95945050505050565b6000806000612807612ff0565b9092509050612816818361397e565b9250505090565b600080546001600160a01b0384811691161480159061284a57506000546001600160a01b03838116911614155b801561286f57506001600160a01b03821660009081526009602052604090205460ff16155b801561289457506001600160a01b03831660009081526009602052604090205460ff16155b80156128ae5750602a546001600160a01b03838116911614155b80156128c257506001600160a01b03821615155b801561129f57506001600160a01b0383163014159392505050565b602d805460ff60a01b1916600160a01b179055601d54601c5461290091906138fc565b15612c5f5760006002601d54601c5461291991906138fc565b601c546129269085613949565b612930919061397e565b61293a919061397e565b9050600061294882846139eb565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612982576129826139d5565b6001600160a01b03928316602091820292909201810191909152602754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156129db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ff9190613c3f565b81600181518110612a1257612a126139d5565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815291169063791ac94790612a58908590600090869030904290600401613d22565b600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b5050505060006002601d54601c54612a9e91906138fc565b601c54612aab9047613949565b612ab5919061397e565b612abf919061397e565b90508315612b8f57602754602c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592612b079230928b92600092839216904290600401613c5c565b60606040518083038185885af1158015612b25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b4a9190613c97565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000612b9b85876139eb565b1115612c5a57601f546021544791600091612bb6908461397e565b612bc09190613949565b9050600060205460215484612bd5919061397e565b612bdf9190613949565b602c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612c1a573d6000803e3d6000fd5b50602d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612c55573d6000803e3d6000fd5b505050505b505050505b50602d805460ff60a01b19169055565b603454600090610100900460ff16612d0357612c8b8585613173565b603454610100900460ff16158015612ca85750612ca8858561281d565b15612d035760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610b11565b6000612d1186868686613281565b60808101516001600160a01b038816600090815260016020526040902054919250612d3b916139eb565b6001600160a01b0380881660009081526001602052604080822093909355606084015191881681529190912054612d7291906138fc565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff168015612dc657506001600160a01b03851660009081526007602052604090205460ff16155b15612e0d576001600160a01b038616600090815260026020526040902054612def9085906139eb565b6001600160a01b038716600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff16158015612e4e57506001600160a01b03851660009081526007602052604090205460ff165b15612e965780516001600160a01b038616600090815260026020526040902054612e7891906138fc565b6001600160a01b038616600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff168015612ed657506001600160a01b03851660009081526007602052604090205460ff165b15612f4d576001600160a01b038616600090815260026020526040902054612eff9085906139eb565b6001600160a01b0380881660009081526002602052604080822093909355835191881681529190912054612f3391906138fc565b6001600160a01b0386166000908152600260205260409020555b604081015115612f6557612f6586826040015161346f565b60008160a001511180612f7c575060008160200151115b15612f9357612f938160a00151826020015161353b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360000151604051612fdc91815260200190565b60405180910390a350600195945050505050565b6025546024546000918291825b6008548110156131425782600160006008848154811061301f5761301f6139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061308a5750816002600060088481548110613063576130636139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156130a057602554602454945094505050509091565b60016000600883815481106130b7576130b76139d5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546130e690846139eb565b925060026000600883815481106130ff576130ff6139d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461312e90836139eb565b91508061313a81613a14565b915050612ffd565b50602454602554613153919061397e565b82101561316a576025546024549350935050509091565b90939092509050565b603454610100900460ff16156131cb5760405162461bcd60e51b815260206004820152601b60248201527f4c697175696469747920697320616c72656164792061646465642e00000000006044820152606401610b11565b6131d5828261281d565b1580156131ef57506028546001600160a01b038281169116145b15610fe7576001600160a01b03821660009081526009602052604090819020805460ff191660019081179091556034805461ff00191661010017905542603655602d805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599161327591901515815260200190565b60405180910390a15050565b6132ba6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6132f36040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006132fd6127fa565b90506133098186613949565b60808301528315613419576001600160a01b03861660009081526003602052604090205460ff161561334c57601454600d55601354600e55601554600f55613397565b6001600160a01b03871660009081526003602052604090205460ff161561338457601054600d55601154600e55601254600f55613397565b601654600d55601754600e55601854600f555b601e54600d546133a79087613949565b6133b1919061397e565b6020830152601e54600f54600e546133c991906138fc565b6133d39087613949565b6133dd919061397e565b6040830181905260208301516133f391906138fc565b6133fd90866139eb565b8252602082015161340f908290613949565b60a0830152613432565b6000602083018190526040830181905285835260a08301525b8082604001516134429190613949565b8260a0015161345191906138fc565b826080015161346091906139eb565b60608301525095945050505050565b60006134796127fa565b905060006134878284613949565b306000908152600160205260409020549091506134a59082906138fc565b3060009081526001602090815260408083209390935560079052205460ff16156134f557306000908152600260205260409020546134e49084906138fc565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b8160255461354991906139eb565b60255560265461355a9082906138fc565b6026555050565b60008060006060848603121561357657600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156135ba5785810183015185820160400152820161359e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611de957600080fd5b6000806040838503121561360357600080fd5b823561360e816135db565b946020939093013593505050565b6000806040838503121561362f57600080fd5b50508035926020909101359150565b8035801515811461364e57600080fd5b919050565b6000806040838503121561366657600080fd5b8235613671816135db565b915061367f6020840161363e565b90509250929050565b60008060006060848603121561369d57600080fd5b83356136a8816135db565b925060208401356136b8816135db565b929592945050506040919091013590565b6000602082840312156136db57600080fd5b5035919050565b6000602082840312156136f457600080fd5b813561129f816135db565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261372657600080fd5b813567ffffffffffffffff80821115613741576137416136ff565b604051601f8301601f19908116603f01168101908282118183101715613769576137696136ff565b8160405283815286602085880101111561378257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156137b857600080fd5b84356137c3816135db565b935060208501356137d3816135db565b9250604085013567ffffffffffffffff808211156137f057600080fd5b6137fc88838901613715565b9350606087013591508082111561381257600080fd5b5061381f87828801613715565b91505092959194509250565b60006020828403121561383d57600080fd5b61129f8261363e565b6000806040838503121561385957600080fd5b8235613864816135db565b91506020830135613874816135db565b809150509250929050565b6000806000806080858703121561389557600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1957610c196138e6565b600181811c9082168061392357607f821691505b60208210810361394357634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615613963576139636138e6565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261398d5761398d613968565b500490565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610c1957610c196138e6565b634e487b7160e01b600052603160045260246000fd5b600060018201613a2657613a266138e6565b5060010190565b601f821115610fe557600081815260208120601f850160051c81016020861015613a545750805b601f850160051c820191505b81811015613a7357828155600101613a60565b505050505050565b815167ffffffffffffffff811115613a9557613a956136ff565b613aa981613aa3845461390f565b84613a2d565b602080601f831160018114613ade5760008415613ac65750858301515b600019600386901b1c1916600185901b178555613a73565b600085815260208120601f198616915b82811015613b0d57888601518255948401946001909101908401613aee565b5085821015613b2b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115613b76578160001904821115613b5c57613b5c6138e6565b80851615613b6957918102915b93841c9390800290613b40565b509250929050565b600082613b8d57506001610c19565b81613b9a57506000610c19565b8160018114613bb05760028114613bba57613bd6565b6001915050610c19565b60ff841115613bcb57613bcb6138e6565b50506001821b610c19565b5060208310610133831016604e8410600b8410161715613bf9575081810a610c19565b613c038383613b3b565b8060001904821115613c1757613c176138e6565b029392505050565b600061129f8383613b7e565b600082613c3a57613c3a613968565b500690565b600060208284031215613c5157600080fd5b815161129f816135db565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613cac57600080fd5b8351925060208401519150604084015190509250925092565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d725784516001600160a01b031683529383019391830191600101613d4d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220066b011a8a2b8e19c95125e1c5ed96853deb1f2f14526fe5e5d0c185230df63164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106103a65760003560e01c80635b8e4046116101e7578063a457c2d71161010d578063d8742467116100a0578063eafb5a3c1161006f578063eafb5a3c14610a71578063f17b67fa14610a91578063fb78680d14610ab1578063fb8bc55f14610ad157600080fd5b8063d8742467146109df578063d9e66460146109f5578063da37be2414610a15578063dd62ed3e14610a2b57600080fd5b8063bbd39ab2116100dc578063bbd39ab21461097e578063be5a463014610993578063c3183e7e146109a9578063c49b9a80146109bf57600080fd5b8063a457c2d714610908578063a9059cbb14610928578063b1263c9114610948578063b46def551461096857600080fd5b806370a0823111610185578063893d20e811610154578063893d20e8146108b65780638da5cb5b146108b657806395d89b41146108d45780639a09a61b146108e957600080fd5b806370a0823114610828578063715018a61461084857806380c581d11461085d57806388f820201461087d57600080fd5b80636639dd93116101c15780636639dd93146107c6578063668357da146107e65780636aa7a071146107fc5780636ed515e61461081257600080fd5b80635b8e40461461077a5780635e0f6584146107905780636612e66f146107a657600080fd5b80632d838119116102cc578063452ed4f11161026a5780634fb2e45d116102395780634fb2e45d14610704578063571ac8b01461072457806358a142b91461074457806358fa63ca1461075a57600080fd5b8063452ed4f11461068d57806346d7df1a146106ad5780634a74bb02146106cd5780634f6e7bb9146106ee57600080fd5b8063384f6b51116102a6578063384f6b51146106215780633895aa2514610637578063395093511461064d57806343a82b1f1461066d57600080fd5b80632d838119146105a6578063313ce567146105c657806337a9314f146105e857600080fd5b8063111be316116103445780631b55ba3a116103135780631b55ba3a1461053157806323b872dd1461054657806328825ff1146105665780632b962ec61461058657600080fd5b8063111be316146104c757806313114a9d146104e757806313e46192146104fc57806318160ddd1461051c57600080fd5b80630758d924116103805780630758d92414610433578063095ea7b3146104535780630c2cdb0e146104835780630cdc8226146104a357600080fd5b806303fd2a45146103b2578063050a9942146103ef57806306fdde031461041157600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b50602a546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103fb57600080fd5b5061040f61040a366004613561565b610ae7565b005b34801561041d57600080fd5b50610426610b76565b6040516103e6919061358d565b34801561043f57600080fd5b506027546103d2906001600160a01b031681565b34801561045f57600080fd5b5061047361046e3660046135f0565b610c08565b60405190151581526020016103e6565b34801561048f57600080fd5b5061040f61049e36600461361c565b610c1f565b3480156104af57600080fd5b506104b9600f5481565b6040519081526020016103e6565b3480156104d357600080fd5b5061040f6104e2366004613561565b610cbc565b3480156104f357600080fd5b506026546104b9565b34801561050857600080fd5b5061040f610517366004613653565b610cf4565b34801561052857600080fd5b506024546104b9565b34801561053d57600080fd5b5061040f610feb565b34801561055257600080fd5b50610473610561366004613688565b6110ac565b34801561057257600080fd5b5061040f610581366004613561565b6110ff565b34801561059257600080fd5b5061040f6105a136600461361c565b611185565b3480156105b257600080fd5b506104b96105c13660046136c9565b611222565b3480156105d257600080fd5b5060225460405160ff90911681526020016103e6565b3480156105f457600080fd5b506104736106033660046136e2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561062d57600080fd5b506104b9601c5481565b34801561064357600080fd5b506104b9600e5481565b34801561065957600080fd5b506104736106683660046135f0565b6112a6565b34801561067957600080fd5b5061040f610688366004613561565b6112dd565b34801561069957600080fd5b506028546103d2906001600160a01b031681565b3480156106b957600080fd5b5061040f6106c83660046137a2565b611363565b3480156106d957600080fd5b50602d5461047390600160a81b900460ff1681565b3480156106fa57600080fd5b506104b9601d5481565b34801561071057600080fd5b5061040f61071f3660046136e2565b611899565b34801561073057600080fd5b5061047361073f3660046136e2565b611a35565b34801561075057600080fd5b506104b9602f5481565b34801561076657600080fd5b50602b546103d2906001600160a01b031681565b34801561078657600080fd5b506104b960115481565b34801561079c57600080fd5b506104b960315481565b3480156107b257600080fd5b5061040f6107c1366004613653565b611a43565b3480156107d257600080fd5b5061040f6107e136600461361c565b611a98565b3480156107f257600080fd5b506104b9600d5481565b34801561080857600080fd5b506104b960145481565b34801561081e57600080fd5b506104b960155481565b34801561083457600080fd5b506104b96108433660046136e2565b611acd565b34801561085457600080fd5b5061040f611b2c565b34801561086957600080fd5b5061040f610878366004613653565b611bab565b34801561088957600080fd5b506104736108983660046136e2565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108c257600080fd5b506000546001600160a01b03166103d2565b3480156108e057600080fd5b50610426611c93565b3480156108f557600080fd5b5060345461047390610100900460ff1681565b34801561091457600080fd5b506104736109233660046135f0565b611ca2565b34801561093457600080fd5b506104736109433660046135f0565b611cd9565b34801561095457600080fd5b5061040f6109633660046136e2565b611ce6565b34801561097457600080fd5b506104b960175481565b34801561098a57600080fd5b5061040f611d85565b34801561099f57600080fd5b506104b960125481565b3480156109b557600080fd5b506104b960165481565b3480156109cb57600080fd5b5061040f6109da36600461382b565b611dec565b3480156109eb57600080fd5b506104b960105481565b348015610a0157600080fd5b506029546103d2906001600160a01b031681565b348015610a2157600080fd5b506104b960185481565b348015610a3757600080fd5b506104b9610a46366004613846565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610a7d57600080fd5b5061040f610a8c3660046136e2565b611e6e565b348015610a9d57600080fd5b5061040f610aac3660046136e2565b61219e565b348015610abd57600080fd5b5061040f610acc36600461387f565b61223d565b348015610add57600080fd5b506104b960135481565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610b11906138b1565b60405180910390fd5b6019548311158015610b2e5750601a548211155b8015610b3c5750601b548111155b610b4557600080fd5b61132481610b5384866138fc565b610b5d91906138fc565b1115610b6857600080fd5b601492909255601355601555565b6060600b8054610b859061390f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb19061390f565b8015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c153384846122a6565b5060015b92915050565b6000546001600160a01b03163314610c495760405162461bcd60e51b8152600401610b11906138b1565b60008183602454610c5a9190613949565b610c64919061397e565b90506103e8602454610c76919061397e565b811015610c955760405162461bcd60e51b8152600401610b1190613992565b602e819055600a548290610caa908590613949565b610cb4919061397e565b602f55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b8152600401610b11906138b1565b601f92909255602055602155565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152600401610b11906138b1565b801515600103610e52576001600160a01b03821660009081526007602052604090205460ff1615610d915760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610b11565b6001600160a01b03821660009081526001602052604090205415610deb576001600160a01b038216600090815260016020526040902054610dd190611222565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b801515600003610fe7576001600160a01b03821660009081526007602052604090205460ff16610ec45760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610b11565b60005b600854811015610fe557826001600160a01b031660088281548110610eee57610eee6139d5565b6000918252602090912001546001600160a01b031603610fd35760088054610f18906001906139eb565b81548110610f2857610f286139d5565b600091825260209091200154600880546001600160a01b039092169183908110610f5457610f546139d5565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff191690556008805480610fac57610fac6139fe565b600082815260209020810160001990810180546001600160a01b0319169055019055610fe5565b80610fdd81613a14565b915050610ec7565b505b5050565b6000546001600160a01b031633146110155760405162461bcd60e51b8152600401610b11906138b1565b60345460ff16156110685760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720697320616c726561647920656e61626c65642100000000006044820152606401610b11565b611073306001610cf4565b60285461108a906001600160a01b03166001610cf4565b6034805460ff19166001179055602d805460ff60a81b1916600160a81b179055565b60006110b98484846123ca565b506001600160a01b0384166000908152600560209081526040808320338085529252909120546110f59186916110f09086906139eb565b6122a6565b5060019392505050565b6000546001600160a01b031633146111295760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561113d5750601a548211155b801561114b5750601b548111155b61115457600080fd5b6113248161116284866138fc565b61116c91906138fc565b111561117757600080fd5b601092909255601155601255565b6000546001600160a01b031633146111af5760405162461bcd60e51b8152600401610b11906138b1565b600081836024546111c09190613949565b6111ca919061397e565b90506103e86024546111dc919061397e565b8110156111fb5760405162461bcd60e51b8152600401610b1190613992565b6030819055600a548290611210908590613949565b61121a919061397e565b603155505050565b60006025548211156112895760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b11565b60006112936127fa565b905061129f818461397e565b9392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c159185906110f09086906138fc565b6000546001600160a01b031633146113075760405162461bcd60e51b8152600401610b11906138b1565b601954831115801561131b5750601a548211155b80156113295750601b548111155b61133257600080fd5b6113248161134084866138fc565b61134a91906138fc565b111561135557600080fd5b601692909255601755601855565b6000546001600160a01b0316331461138d5760405162461bcd60e51b8152600401610b11906138b1565b603a5460ff161561139d57600080fd5b602d80546001600160a01b03199081166001600160a01b03878116918217909355602c8054909216868416178255600090815260066020526040808220805460ff19908116600190811790925593549094168252902080549091169091179055600b6114098382613a7b565b50600c6114168282613a7b565b50620f4240600a556022805460ff1916601290811790915560235560235461143f90600a613c1f565b600a5461144c9190613949565b602481905561145d90600019613c2b565b611469906000196139eb565b602555602954602780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156114c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ec9190613c3f565b6001600160a01b031663c9c65396602760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115719190613c3f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e19190613c3f565b602880546001600160a01b0319166001600160a01b039283169081179091556000908152600360209081526040808320805460ff19166001179055308352600582528083206027549094168352929052206000199055602454620186a09061164b906103e8613949565b611655919061397e565b602e55600a54620186a09061166c906101f4613949565b611676919061397e565b602f556024546103e89061168b90600a613949565b611695919061397e565b603055600a80546103e8916116aa9190613949565b6116b4919061397e565b603155602454612710906116c9906005613949565b6116d3919061397e565b6032556024546103e8906116e8906005613949565b6116f2919061397e565b60335560295461170d906001600160a01b0316600019610c08565b50603a805460ff191660019081179091556025549060006117366000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556117626000546001600160a01b031690565b602b546024546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36027546117c59030906001600160a01b03166000196122a6565b6117f56117da6000546001600160a01b031690565b306117f06108436000546001600160a01b031690565b6123ca565b506027546001600160a01b031663f305d719473061181281611acd565b6000806118276000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161184996959493929190613c5c565b60606040518083038185885af1158015611867573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061188c9190613c97565b5050436039555050505050565b6000546001600160a01b031633146118c35760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b0381166118e95760405162461bcd60e51b8152600401610b1190613cc5565b602a546001600160a01b03908116908216036119175760405162461bcd60e51b8152600401610b1190613cc5565b60008054611930916001600160a01b0390911690611a43565b61193b816001611a43565b611946816001610cf4565b600054602c546001600160a01b0391821691160361197a57602c80546001600160a01b0319166001600160a01b0383161790555b60005461198f906001600160a01b0316611acd565b600080546001600160a01b0390811682526005602090815260408084208684168552909152822092909255805490916119c89116611acd565b11156119ea576000546119e8906001600160a01b0316826117f082611acd565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610c1982600019610c08565b6000546001600160a01b03163314611a6d5760405162461bcd60e51b8152600401610b11906138b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611ac25760405162461bcd60e51b8152600401610b11906138b1565b601c91909155601d55565b6001600160a01b03811660009081526007602052604081205460ff1615611b0a57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c1990611222565b6000546001600160a01b03163314611b565760405162461bcd60e51b8152600401610b11906138b1565b60008054611b6f916001600160a01b0390911690611a43565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611bd55760405162461bcd60e51b8152600401610b11906138b1565b801515600003611c0157506001600160a01b03166000908152600360205260409020805460ff19169055565b60045415611c685762093a8060045442611c1b91906139eb565b11611c685760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610b11565b6001600160a01b0382166000908152600360205260409020805460ff19166001179055426004555050565b6060600c8054610b859061390f565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c159185906110f09086906139eb565b60006110f53384846123ca565b6000546001600160a01b03163314611d105760405162461bcd60e51b8152600401610b11906138b1565b602c546001600160a01b03808316911603611d635760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611daf5760405162461bcd60e51b8152600401610b11906138b1565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611de9573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611e165760405162461bcd60e51b8152600401610b11906138b1565b602d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6390831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611e985760405162461bcd60e51b8152600401610b11906138b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f019190613c3f565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190613c3f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190613c3f565b90506001600160a01b03811661215a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190613c3f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190613c3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121359190613c3f565b602880546001600160a01b0319166001600160a01b0392909216919091179055612176565b602880546001600160a01b0319166001600160a01b0383161790555b602780546001600160a01b0319166001600160a01b038416179055610fe530846000196122a6565b6000546001600160a01b031633146121c85760405162461bcd60e51b8152600401610b11906138b1565b602d546001600160a01b0380831691160361221b5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610b11565b602d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146122675760405162461bcd60e51b8152600401610b11906138b1565b82846024546122769190613949565b612280919061397e565b6032556024548190612293908490613949565b61229d919061397e565b60335550505050565b6001600160a01b0383166123085760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b11565b6001600160a01b0382166123695760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b11565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166124305760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f74207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b11565b6001600160a01b0383166124925760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b11565b600082116124f45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b11565b6124fe848461281d565b156127225760345460ff166125555760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b11565b60375460ff1615612619576001600160a01b03841660009081526003602052604090205460ff16156125cf5761258c4360016138fc565b6001600160a01b038416600090815260386020526040902054036125af57600080fd5b6001600160a01b0383166000908152603860205260409020439055612619565b6125da4360016138fc565b6001600160a01b038516600090815260386020526040902054036125fd57600080fd5b6001600160a01b03841660009081526038602052604090204390555b602e548211156126755760405162461bcd60e51b815260206004820152602160248201527f5472616e73666572206578636565647320746865206d61785478416d6f756e746044820152601760f91b6064820152608401610b11565b6029546001600160a01b038481169116148015906126ac57506001600160a01b03831660009081526003602052604090205460ff16155b1561272257603054826126be85611acd565b6126c891906138fc565b11156127225760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572206578636565647320746865206d617857616c6c657453696044820152623d329760e91b6064820152608401610b11565b6001600160a01b03841660009081526006602052604090205460019060ff168061276457506001600160a01b03841660009081526006602052604090205460ff165b1561276d575060005b6001600160a01b03841660009081526003602052604090205460ff16156127e557602d54600160a01b900460ff161580156127b15750602d54600160a81b900460ff165b156127e55760006127c130611acd565b905060325481106127e35760335481106127da57506033545b6127e3816128dd565b505b6127f185858584612c6f565b95945050505050565b6000806000612807612ff0565b9092509050612816818361397e565b9250505090565b600080546001600160a01b0384811691161480159061284a57506000546001600160a01b03838116911614155b801561286f57506001600160a01b03821660009081526009602052604090205460ff16155b801561289457506001600160a01b03831660009081526009602052604090205460ff16155b80156128ae5750602a546001600160a01b03838116911614155b80156128c257506001600160a01b03821615155b801561129f57506001600160a01b0383163014159392505050565b602d805460ff60a01b1916600160a01b179055601d54601c5461290091906138fc565b15612c5f5760006002601d54601c5461291991906138fc565b601c546129269085613949565b612930919061397e565b61293a919061397e565b9050600061294882846139eb565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110612982576129826139d5565b6001600160a01b03928316602091820292909201810191909152602754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156129db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ff9190613c3f565b81600181518110612a1257612a126139d5565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815291169063791ac94790612a58908590600090869030904290600401613d22565b600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b5050505060006002601d54601c54612a9e91906138fc565b601c54612aab9047613949565b612ab5919061397e565b612abf919061397e565b90508315612b8f57602754602c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592612b079230928b92600092839216904290600401613c5c565b60606040518083038185885af1158015612b25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b4a9190613c97565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000612b9b85876139eb565b1115612c5a57601f546021544791600091612bb6908461397e565b612bc09190613949565b9050600060205460215484612bd5919061397e565b612bdf9190613949565b602c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612c1a573d6000803e3d6000fd5b50602d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612c55573d6000803e3d6000fd5b505050505b505050505b50602d805460ff60a01b19169055565b603454600090610100900460ff16612d0357612c8b8585613173565b603454610100900460ff16158015612ca85750612ca8858561281d565b15612d035760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610b11565b6000612d1186868686613281565b60808101516001600160a01b038816600090815260016020526040902054919250612d3b916139eb565b6001600160a01b0380881660009081526001602052604080822093909355606084015191881681529190912054612d7291906138fc565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff168015612dc657506001600160a01b03851660009081526007602052604090205460ff16155b15612e0d576001600160a01b038616600090815260026020526040902054612def9085906139eb565b6001600160a01b038716600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff16158015612e4e57506001600160a01b03851660009081526007602052604090205460ff165b15612e965780516001600160a01b038616600090815260026020526040902054612e7891906138fc565b6001600160a01b038616600090815260026020526040902055612f4d565b6001600160a01b03861660009081526007602052604090205460ff168015612ed657506001600160a01b03851660009081526007602052604090205460ff165b15612f4d576001600160a01b038616600090815260026020526040902054612eff9085906139eb565b6001600160a01b0380881660009081526002602052604080822093909355835191881681529190912054612f3391906138fc565b6001600160a01b0386166000908152600260205260409020555b604081015115612f6557612f6586826040015161346f565b60008160a001511180612f7c575060008160200151115b15612f9357612f938160a00151826020015161353b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360000151604051612fdc91815260200190565b60405180910390a350600195945050505050565b6025546024546000918291825b6008548110156131425782600160006008848154811061301f5761301f6139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061308a5750816002600060088481548110613063576130636139d5565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156130a057602554602454945094505050509091565b60016000600883815481106130b7576130b76139d5565b60009182526020808320909101546001600160a01b031683528201929092526040019020546130e690846139eb565b925060026000600883815481106130ff576130ff6139d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461312e90836139eb565b91508061313a81613a14565b915050612ffd565b50602454602554613153919061397e565b82101561316a576025546024549350935050509091565b90939092509050565b603454610100900460ff16156131cb5760405162461bcd60e51b815260206004820152601b60248201527f4c697175696469747920697320616c72656164792061646465642e00000000006044820152606401610b11565b6131d5828261281d565b1580156131ef57506028546001600160a01b038281169116145b15610fe7576001600160a01b03821660009081526009602052604090819020805460ff191660019081179091556034805461ff00191661010017905542603655602d805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599161327591901515815260200190565b60405180910390a15050565b6132ba6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6132f36040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006132fd6127fa565b90506133098186613949565b60808301528315613419576001600160a01b03861660009081526003602052604090205460ff161561334c57601454600d55601354600e55601554600f55613397565b6001600160a01b03871660009081526003602052604090205460ff161561338457601054600d55601154600e55601254600f55613397565b601654600d55601754600e55601854600f555b601e54600d546133a79087613949565b6133b1919061397e565b6020830152601e54600f54600e546133c991906138fc565b6133d39087613949565b6133dd919061397e565b6040830181905260208301516133f391906138fc565b6133fd90866139eb565b8252602082015161340f908290613949565b60a0830152613432565b6000602083018190526040830181905285835260a08301525b8082604001516134429190613949565b8260a0015161345191906138fc565b826080015161346091906139eb565b60608301525095945050505050565b60006134796127fa565b905060006134878284613949565b306000908152600160205260409020549091506134a59082906138fc565b3060009081526001602090815260408083209390935560079052205460ff16156134f557306000908152600260205260409020546134e49084906138fc565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b8160255461354991906139eb565b60255560265461355a9082906138fc565b6026555050565b60008060006060848603121561357657600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156135ba5785810183015185820160400152820161359e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611de957600080fd5b6000806040838503121561360357600080fd5b823561360e816135db565b946020939093013593505050565b6000806040838503121561362f57600080fd5b50508035926020909101359150565b8035801515811461364e57600080fd5b919050565b6000806040838503121561366657600080fd5b8235613671816135db565b915061367f6020840161363e565b90509250929050565b60008060006060848603121561369d57600080fd5b83356136a8816135db565b925060208401356136b8816135db565b929592945050506040919091013590565b6000602082840312156136db57600080fd5b5035919050565b6000602082840312156136f457600080fd5b813561129f816135db565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261372657600080fd5b813567ffffffffffffffff80821115613741576137416136ff565b604051601f8301601f19908116603f01168101908282118183101715613769576137696136ff565b8160405283815286602085880101111561378257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156137b857600080fd5b84356137c3816135db565b935060208501356137d3816135db565b9250604085013567ffffffffffffffff808211156137f057600080fd5b6137fc88838901613715565b9350606087013591508082111561381257600080fd5b5061381f87828801613715565b91505092959194509250565b60006020828403121561383d57600080fd5b61129f8261363e565b6000806040838503121561385957600080fd5b8235613864816135db565b91506020830135613874816135db565b809150509250929050565b6000806000806080858703121561389557600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1957610c196138e6565b600181811c9082168061392357607f821691505b60208210810361394357634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615613963576139636138e6565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261398d5761398d613968565b500490565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b81810381811115610c1957610c196138e6565b634e487b7160e01b600052603160045260246000fd5b600060018201613a2657613a266138e6565b5060010190565b601f821115610fe557600081815260208120601f850160051c81016020861015613a545750805b601f850160051c820191505b81811015613a7357828155600101613a60565b505050505050565b815167ffffffffffffffff811115613a9557613a956136ff565b613aa981613aa3845461390f565b84613a2d565b602080601f831160018114613ade5760008415613ac65750858301515b600019600386901b1c1916600185901b178555613a73565b600085815260208120601f198616915b82811015613b0d57888601518255948401946001909101908401613aee565b5085821015613b2b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115613b76578160001904821115613b5c57613b5c6138e6565b80851615613b6957918102915b93841c9390800290613b40565b509250929050565b600082613b8d57506001610c19565b81613b9a57506000610c19565b8160018114613bb05760028114613bba57613bd6565b6001915050610c19565b60ff841115613bcb57613bcb6138e6565b50506001821b610c19565b5060208310610133831016604e8410600b8410161715613bf9575081810a610c19565b613c038383613b3b565b8060001904821115613c1757613c176138e6565b029392505050565b600061129f8383613b7e565b600082613c3a57613c3a613968565b500690565b600060208284031215613c5157600080fd5b815161129f816135db565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613cac57600080fd5b8351925060208401519150604084015190509250925092565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d725784516001600160a01b031683529383019391830191600101613d4d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220066b011a8a2b8e19c95125e1c5ed96853deb1f2f14526fe5e5d0c185230df63164736f6c63430008100033

Deployed Bytecode Sourcemap

4555:17004:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5904:64;;;;;;;;;;-1:-1:-1;5904:64:0;;;;-1:-1:-1;;;;;5904:64:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5904:64:0;;;;;;;;12504:272;;;;;;;;;;-1:-1:-1;12504:272:0;;;;;:::i;:::-;;:::i;:::-;;9985:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5813:35::-;;;;;;;;;;-1:-1:-1;5813:35:0;;;;-1:-1:-1;;;;;5813:35:0;;;10543:135;;;;;;;;;;-1:-1:-1;10543:135:0;;;;;:::i;:::-;;:::i;:::-;;;1951:14:1;;1944:22;1926:41;;1914:2;1899:18;10543:135:0;1786:187:1;13279:242:0;;;;;;;;;;-1:-1:-1;13279:242:0;;;;;:::i;:::-;;:::i;5091:25::-;;;;;;;;;;;;;;;;;;;2377::1;;;2365:2;2350:18;5091:25:0;2231:177:1;13049:106:0;;;;;;;;;;-1:-1:-1;13049:106:0;;;;;:::i;:::-;;:::i;15124:73::-;;;;;;;;;;-1:-1:-1;15184:10:0;;15124:73;;14555:569;;;;;;;;;;-1:-1:-1;14555:569:0;;;;;:::i;:::-;;:::i;9759:83::-;;;;;;;;;;-1:-1:-1;9832:7:0;;9759:83;;18377:214;;;;;;;;;;;;;:::i;10782:216::-;;;;;;;;;;-1:-1:-1;10782:216:0;;;;;:::i;:::-;;:::i;12232:272::-;;;;;;;;;;-1:-1:-1;12232:272:0;;;;;:::i;:::-;;:::i;13521:206::-;;;;;;;;;;-1:-1:-1;13521:206:0;;;;;:::i;:::-;;:::i;15401:216::-;;;;;;;;;;-1:-1:-1;15401:216:0;;;;;:::i;:::-;;:::i;9843:71::-;;;;;;;;;;-1:-1:-1;9902:9:0;;9843:71;;9902:9;;;;3686:36:1;;3674:2;3659:18;9843:71:0;3544:184:1;12150:82:0;;;;;;;;;;-1:-1:-1;12150:82:0;;;;;:::i;:::-;-1:-1:-1;;;;;12215:14:0;12201:4;12215:14;;;:5;:14;;;;;;;;;12150:82;5456:34;;;;;;;;;;;;;;;;5066:23;;;;;;;;;;;;;;;;10998:182;;;;;;;;;;-1:-1:-1;10998:182:0;;;;;:::i;:::-;;:::i;12776:273::-;;;;;;;;;;-1:-1:-1;12776:273:0;;;;;:::i;:::-;;:::i;5850:21::-;;;;;;;;;;-1:-1:-1;5850:21:0;;;;-1:-1:-1;;;;;5850:21:0;;;7633:1319;;;;;;;;;;-1:-1:-1;7633:1319:0;;;;;:::i;:::-;;:::i;6127:41::-;;;;;;;;;;-1:-1:-1;6127:41:0;;;;-1:-1:-1;;;6127:41:0;;;;;;5492:24;;;;;;;;;;;;;;;;9018:583;;;;;;;;;;-1:-1:-1;9018:583:0;;;;;:::i;:::-;;:::i;10678:104::-;;;;;;;;;;-1:-1:-1;10678:104:0;;;;;:::i;:::-;;:::i;6192:20::-;;;;;;;;;;;;;;;;5970:64;;;;;;;;;;-1:-1:-1;5970:64:0;;;;-1:-1:-1;;;;;5970:64:0;;;5147:27;;;;;;;;;;;;;;;;6235:20;;;;;;;;;;;;;;;;14451:104;;;;;;;;;;-1:-1:-1;14451:104:0;;;;;:::i;:::-;;:::i;13155:124::-;;;;;;;;;;-1:-1:-1;13155:124:0;;;;;:::i;:::-;;:::i;5041:23::-;;;;;;;;;;;;;;;;5231:24;;;;;;;;;;;;;;;;5257:26;;;;;;;;;;;;;;;;10251:158;;;;;;;;;;-1:-1:-1;10251:158:0;;;;;:::i;:::-;;:::i;9601:::-;;;;;;;;;;;;;:::i;11796:257::-;;;;;;;;;;-1:-1:-1;11796:257:0;;;;;:::i;:::-;;:::i;12053:97::-;;;;;;;;;;-1:-1:-1;12053:97:0;;;;;:::i;:::-;-1:-1:-1;;;;;12135:12:0;12121:4;12135:12;;;:3;:12;;;;;;;;;12053:97;10054:71;;;;;;;;;;-1:-1:-1;10097:7:0;9008:6;-1:-1:-1;;;;;9008:6:0;10054:71;;9914:70;;;;;;;;;;;;;:::i;6337:36::-;;;;;;;;;;-1:-1:-1;6337:36:0;;;;;;;;;;;11180:192;;;;;;;;;;-1:-1:-1;11180:192:0;;;;;:::i;:::-;;:::i;10409:134::-;;;;;;;;;;-1:-1:-1;10409:134:0;;;;;:::i;:::-;;:::i;14162:143::-;;;;;;;;;;-1:-1:-1;14162:143:0;;;;;:::i;:::-;;:::i;5311:24::-;;;;;;;;;;;;;;;;21126:98;;;;;;;;;;;;;:::i;5176:27::-;;;;;;;;;;;;;;;;5285:24;;;;;;;;;;;;;;;;14305:146;;;;;;;;;;-1:-1:-1;14305:146:0;;;;;:::i;:::-;;:::i;5118:27::-;;;;;;;;;;;;;;;;5873:29;;;;;;;;;;-1:-1:-1;5873:29:0;;;;-1:-1:-1;;;;;5873:29:0;;;5337:24;;;;;;;;;;;;;;;;10125:126;;;;;;;;;;-1:-1:-1;10125:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;10227:12:0;;;10209:7;10227:12;;;:4;:12;;;;;;;;:21;;;;;;;;;;;;;10125:126;11372:424;;;;;;;;;;-1:-1:-1;11372:424:0;;;;;:::i;:::-;;:::i;13990:172::-;;;;;;;;;;-1:-1:-1;13990:172:0;;;;;:::i;:::-;;:::i;13727:263::-;;;;;;;;;;-1:-1:-1;13727:263:0;;;;;:::i;:::-;;:::i;5205:24::-;;;;;;;;;;;;;;;;12504:272;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;;;;;;;;;12614:6:::1;;12603:7;:17;;:40;;;;;12637:6;;12624:9;:19;;12603:40;:63;;;;;12660:6;;12647:9;:19;;12603:63;12595:73;;;::::0;::::1;;12713:4;12700:9:::0;12678:19:::1;12688:9:::0;12678:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;12670:48;;;::::0;::::1;;12720:5;:15:::0;;;;12737:5:::1;:17:::0;12756:5:::1;:17:::0;12504:272::o;9985:69::-;10024:13;10048:3;10041:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9985:69;:::o;10543:135::-;10618:4;10625:39;187:10;10648:7;10657:6;10625:8;:39::i;:::-;-1:-1:-1;10672:4:0;10543:135;;;;;:::o;13279:242::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;13350:13:::1;13388:7;13377;13367;;:17;;;;:::i;:::-;13366:29;;;;:::i;:::-;13350:45;;13425:4;13415:7;;:14;;;;:::i;:::-;13405:5;:25;;13397:73;;;;-1:-1:-1::0;;;13397:73:0::1;;;;;;;:::i;:::-;13472:4;:12:::0;;;13495:2:::1;::::0;13511:7;;13495:12:::1;::::0;13500:7;;13495:12:::1;:::i;:::-;13494:24;;;;:::i;:::-;13486:5;:32:::0;-1:-1:-1;;;13279:242:0:o;13049:106::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;13125:3:::1;:8:::0;;;;13135:3:::1;:8:::0;13145:3:::1;:8:::0;13049:106::o;14555:569::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;14640:15;::::1;;14651:4;14640:15:::0;14636:486:::1;;-1:-1:-1::0;;;;;14668:12:0;::::1;;::::0;;;:3:::1;:12;::::0;;;;;::::1;;14667:13;14659:54;;;::::0;-1:-1:-1;;;14659:54:0;;8954:2:1;14659:54:0::1;::::0;::::1;8936:21:1::0;8993:2;8973:18;;;8966:30;9032;9012:18;;;9005:58;9080:18;;14659:54:0::1;8752:352:1::0;14659:54:0::1;-1:-1:-1::0;;;;;14718:13:0;::::1;14734:1;14718:13:::0;;;:4:::1;:13;::::0;;;;;:17;14715:77:::1;;-1:-1:-1::0;;;;;14775:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;14755:34:::1;::::0;:19:::1;:34::i;:::-;-1:-1:-1::0;;;;;14739:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;:50;14715:77:::1;-1:-1:-1::0;;;;;;14793:12:0::1;;::::0;;;:3:::1;:12;::::0;;;;:19;;-1:-1:-1;;14793:19:0::1;14808:4;14793:19:::0;;::::1;::::0;;;14814:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;14814:23:0::1;::::0;;::::1;::::0;;14555:569::o;14636:486::-:1;14850:16:::0;::::1;;14861:5;14850:16:::0;14846:276:::1;;-1:-1:-1::0;;;;;14878:12:0;::::1;;::::0;;;:3:::1;:12;::::0;;;;;::::1;;14870:53;;;::::0;-1:-1:-1;;;14870:53:0;;9311:2:1;14870:53:0::1;::::0;::::1;9293:21:1::0;9350:2;9330:18;;;9323:30;9389;9369:18;;;9362:58;9437:18;;14870:53:0::1;9109:352:1::0;14870:53:0::1;14930:9;14925:195;14949:9;:16:::0;14945:20;::::1;14925:195;;;14993:7;-1:-1:-1::0;;;;;14977:23:0::1;:9;14987:1;14977:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14977:12:0::1;:23:::0;14973:145:::1;;15019:9;15029:16:::0;;:20:::1;::::0;15048:1:::1;::::0;15029:20:::1;:::i;:::-;15019:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;15004:9:::1;:12:::0;;-1:-1:-1;;;;;15019:31:0;;::::1;::::0;15014:1;;15004:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;15004:46:0::1;-1:-1:-1::0;;;;;15004:46:0;;::::1;;::::0;;15052:13;;::::1;::::0;;:4:::1;:13:::0;;;;;;:17;;;15071:3:::1;:12:::0;;;;:20;;-1:-1:-1;;15071:20:0::1;::::0;;15093:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15093:15:0;;;;;-1:-1:-1;;;;;;15093:15:0::1;::::0;;;;;15110:5:::1;;14973:145;14967:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14925:195;;;;14846:276;14555:569:::0;;:::o;18377:214::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;18422:7:::1;::::0;::::1;;18421:8;18413:48;;;::::0;-1:-1:-1;;;18413:48:0;;10205:2:1;18413:48:0::1;::::0;::::1;10187:21:1::0;10244:2;10224:18;;;10217:30;10283:29;10263:18;;;10256:57;10330:18;;18413:48:0::1;10003:351:1::0;18413:48:0::1;18463:42;18493:4;18500;18463:21;:42::i;:::-;18529:6;::::0;18507:35:::1;::::0;-1:-1:-1;;;;;18529:6:0::1;::::0;18507:21:::1;:35::i;:::-;18544:7;:14:::0;;-1:-1:-1;;18544:14:0::1;18554:4;18544:14;::::0;;18560:21:::1;:28:::0;;-1:-1:-1;;;;18560:28:0::1;-1:-1:-1::0;;;18560:28:0::1;::::0;;18377:214::o;10782:216::-;10880:4;10887:29;10890:6;10898:9;10909:6;10887:2;:29::i;:::-;-1:-1:-1;;;;;;10948:12:0;;;;;;:4;:12;;;;;;;;187:10;10948:26;;;;;;;;;10917:67;;10926:6;;10948:35;;10977:6;;10948:35;:::i;:::-;10917:8;:67::i;:::-;-1:-1:-1;10992:4:0;10782:216;;;;;:::o;12232:272::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;12342:6:::1;;12331:7;:17;;:40;;;;;12365:6;;12352:9;:19;;12331:40;:63;;;;;12388:6;;12375:9;:19;;12331:63;12323:74;;;::::0;::::1;;12442:4;12429:9:::0;12407:19:::1;12417:9:::0;12407:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;12399:48;;;::::0;::::1;;12449:5;:15:::0;;;;12466:5:::1;:17:::0;12484:5:::1;:17:::0;12232:272::o;13521:206::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;13580:13:::1;13612:1;13607;13597:7;;:11;;;;:::i;:::-;13596:17;;;;:::i;:::-;13580:33;;13644:4;13634:7;;:14;;;;:::i;:::-;13624:5;:25;;13616:73;;;;-1:-1:-1::0;;;13616:73:0::1;;;;;;;:::i;:::-;13691:4;:12:::0;;;13714:2:::1;::::0;13724:1;;13714:6:::1;::::0;13719:1;;13714:6:::1;:::i;:::-;13713:12;;;;:::i;:::-;13705:5;:20:::0;-1:-1:-1;;;13521:206:0:o;15401:216::-;15467:7;15496;;15485;:18;;15477:73;;;;-1:-1:-1;;;15477:73:0;;10561:2:1;15477:73:0;;;10543:21:1;10600:2;10580:18;;;10573:30;10639:34;10619:18;;;10612:62;-1:-1:-1;;;10690:18:1;;;10683:40;10740:19;;15477:73:0;10359:406:1;15477:73:0;15552:19;15575:10;:8;:10::i;:::-;15552:33;-1:-1:-1;15593:21:0;15552:33;15593:7;:21;:::i;:::-;15586:28;15401:216;-1:-1:-1;;;15401:216:0:o;10998:182::-;187:10;11086:4;11125:18;;;:4;:18;;;;;;;;-1:-1:-1;;;;;11125:27:0;;;;;;;;;;11086:4;;11093:73;;11116:7;;11125:40;;11155:10;;11125:40;:::i;12776:273::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;12886:6:::1;;12875:7;:17;;:41;;;;;12910:6;;12897:9;:19;;12875:41;:64;;;;;12933:6;;12920:9;:19;;12875:64;12867:74;;;::::0;::::1;;12986:4;12973:9:::0;12951:19:::1;12961:9:::0;12951:7;:19:::1;:::i;:::-;:31;;;;:::i;:::-;:39;;12943:48;;;::::0;::::1;;12993:5;:15:::0;;;;13010:5:::1;:17:::0;13029:5:::1;:17:::0;12776:273::o;7633:1319::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;7786:3:::1;::::0;::::1;;7785:4;7777:13;;;::::0;::::1;;7792;:40:::0;;-1:-1:-1;;;;;;7792:40:0;;::::1;-1:-1:-1::0;;;;;7792:40:0;;::::1;::::0;;::::1;::::0;;;7834:3:::1;:20:::0;;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;7856:20:0;;;:5:::1;:20;::::0;;;;;:27;;-1:-1:-1;;7856:27:0;;::::1;-1:-1:-1::0;7856:27:0;;::::1;::::0;;;7891:3;;;;::::1;7885:10:::0;;;;:17;;;;::::1;::::0;;::::1;::::0;;7904:3:::1;:16;7910:10:::0;7904:3;:16:::1;:::i;:::-;-1:-1:-1::0;7922:2:0::1;:17;7927:12:::0;7922:2;:17:::1;:::i;:::-;-1:-1:-1::0;7946:9:0::1;7941:2;:14:::0;7982:9:::1;:14:::0;;-1:-1:-1;;7982:14:0::1;7994:2;7982:14:::0;;::::1;::::0;;;7998:12:::1;:24:::0;8097:12:::1;::::0;8093:16:::1;::::0;:2:::1;:16;:::i;:::-;8087:2;;:23;;;;:::i;:::-;8077:7;:33:::0;;;8130:13:::1;::::0;-1:-1:-1;;8130:13:0::1;:::i;:::-;8123:21;::::0;-1:-1:-1;;8123:21:0::1;:::i;:::-;8112:7;:33:::0;8178:14:::1;::::0;8147:9:::1;:46:::0;;-1:-1:-1;;;;;;8147:46:0::1;-1:-1:-1::0;;;;;8178:14:0;;::::1;8147:46:::0;;::::1;::::0;;8222:19:::1;::::0;;-1:-1:-1;;;8222:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;8178:14;8222:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8204:49:0::1;;8254:9;;;;;;;;;-1:-1:-1::0;;;;;8254:9:0::1;-1:-1:-1::0;;;;;8254:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8204:82;::::0;-1:-1:-1;;;;;;8204:82:0::1;::::0;;;;;;-1:-1:-1;;;;;14951:15:1;;;8204:82:0::1;::::0;::::1;14933:34:1::0;8280:4:0::1;14983:18:1::0;;;14976:43;14868:18;;8204:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8195:6;:91:::0;;-1:-1:-1;;;;;;8195:91:0::1;-1:-1:-1::0;;;;;8195:91:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;8288:12:0;;;:4:::1;:12;::::0;;;;;;;:19;;-1:-1:-1;;8288:19:0::1;-1:-1:-1::0;8288:19:0::1;::::0;;8322:4:::1;8309:19:::0;;:4:::1;:19:::0;;;;;8337:9:::1;::::0;;;::::1;8309:39:::0;;;;;;-1:-1:-1;;8309:59:0;;8378:7:::1;::::0;8396:6:::1;::::0;8378:14:::1;::::0;8388:4:::1;8378:14;:::i;:::-;8377:25;;;;:::i;:::-;8370:4;:32:::0;8413:2:::1;::::0;8425:6:::1;::::0;8413:8:::1;::::0;8418:3:::1;8413:8;:::i;:::-;8412:19;;;;:::i;:::-;8404:5;:27:::0;8441:7:::1;::::0;8457:4:::1;::::0;8441:12:::1;::::0;8451:2:::1;8441:12;:::i;:::-;8440:21;;;;:::i;:::-;8433:4;:28:::0;8472:2:::1;::::0;;8483:4:::1;::::0;8472:7:::1;::::0;:2;:7:::1;:::i;:::-;8471:16;;;;:::i;:::-;8463:5;:24:::0;8506:7:::1;::::0;8521:5:::1;::::0;8506:11:::1;::::0;8516:1:::1;8506:11;:::i;:::-;8505:21;;;;:::i;:::-;8489:13;:37:::0;8542:7:::1;::::0;8557:4:::1;::::0;8542:11:::1;::::0;8552:1:::1;8542:11;:::i;:::-;8541:20;;;;:::i;:::-;8528:10;:33:::0;8571:14:::1;::::0;8563:42:::1;::::0;-1:-1:-1;;;;;8571:14:0::1;-1:-1:-1::0;;8563:7:0::1;:42::i;:::-;-1:-1:-1::0;8607:3:0::1;:10:::0;;-1:-1:-1;;8607:10:0::1;8613:4;8607:10:::0;;::::1;::::0;;;8635:7:::1;::::0;;8607:3:::1;8624:7;8990::::0;9008:6;-1:-1:-1;;;;;9008:6:0;;8952:65;8624:7:::1;-1:-1:-1::0;;;;;8619:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8619:13:0;:23;8664:7:::1;8990::::0;9008:6;-1:-1:-1;;;;;9008:6:0;;8952:65;8664:7:::1;8658:4;::::0;8673:7:::1;::::0;8649:32:::1;::::0;2377:25:1;;;-1:-1:-1;;;;;8649:32:0;;::::1;::::0;8658:4;;::::1;::::0;8649:32:::1;::::0;2365:2:1;2350:18;8649:32:0::1;;;;;;;8715:9;::::0;8683:62:::1;::::0;8700:4:::1;::::0;-1:-1:-1;;;;;8715:9:0::1;-1:-1:-1::0;;8683:8:0::1;:62::i;:::-;8747:46;8750:7;8990::::0;9008:6;-1:-1:-1;;;;;9008:6:0;;8952:65;8750:7:::1;8767:4;8774:18;8784:7;8990::::0;9008:6;-1:-1:-1;;;;;9008:6:0;;8952:65;8774:18:::1;8747:2;:46::i;:::-;-1:-1:-1::0;8795:9:0::1;::::0;-1:-1:-1;;;;;8795:9:0::1;:25;8828:21;8860:4;8867:24;8860:4:::0;8867:9:::1;:24::i;:::-;8893:1;8896::::0;8899:7:::1;8990::::0;9008:6;-1:-1:-1;;;;;9008:6:0;;8952:65;8899:7:::1;8908:15;8795:130;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8937:12:0::1;8927:7;:22:::0;-1:-1:-1;;;;;7633:1319:0:o;9018:583::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9089:22:0;::::1;9081:96;;;;-1:-1:-1::0;;;9081:96:0::1;;;;;;;:::i;:::-;9198:4;::::0;-1:-1:-1;;;;;9198:4:0;;::::1;9186:16:::0;;::::1;::::0;9178:90:::1;;;;-1:-1:-1::0;;;9178:90:0::1;;;;;;;:::i;:::-;9288:6;::::0;;9269:33:::1;::::0;-1:-1:-1;;;;;9288:6:0;;::::1;::::0;9269:18:::1;:33::i;:::-;9303:34;9322:8;9332:4;9303:18;:34::i;:::-;9338:37;9360:8;9370:4;9338:21;:37::i;:::-;9395:6;::::0;9380:3:::1;::::0;-1:-1:-1;;;;;9395:6:0;;::::1;9380:3:::0;::::1;:22:::0;9376:50:::1;;9403:3;:23:::0;;-1:-1:-1;;;;;;9403:23:0::1;-1:-1:-1::0;;;;;9403:23:0;::::1;;::::0;;9376:50:::1;9462:6;::::0;9452:17:::1;::::0;-1:-1:-1;;;;;9462:6:0::1;9452:9;:17::i;:::-;9427:12;9432:6:::0;;-1:-1:-1;;;;;9432:6:0;;::::1;9427:12:::0;;:4:::1;:12;::::0;;;;;;;:22;;::::1;::::0;;;;;;;:42;;;;9483:6;;9427:12;;9473:17:::1;::::0;9483:6:::1;9473:9;:17::i;:::-;:21;9470:68;;;9500:6;::::0;9497:39:::1;::::0;-1:-1:-1;;;;;9500:6:0::1;9508:8:::0;9518:17:::1;9500:6:::0;9518:9:::1;:17::i;9497:39::-;;9470:68;9538:6;:17:::0;;-1:-1:-1;;;;;;9538:17:0::1;-1:-1:-1::0;;;;;9538:17:0;::::1;::::0;;::::1;::::0;;9561:38:::1;::::0;9538:17;;;;9561:38:::1;::::0;9538:6;9561:38:::1;9018:583:::0;:::o;10678:104::-;10731:4;10745:35;10753:7;-1:-1:-1;;10745:7:0;:35::i;14451:104::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14529:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24;;-1:-1:-1;;14529:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14451:104::o;13155:124::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;13233:15:::1;:27:::0;;;;13262:3:::1;:15:::0;13155:124::o;10251:158::-;-1:-1:-1;;;;;10331:12:0;;10317:7;10331:12;;;:3;:12;;;;;;;;10327:38;;;-1:-1:-1;;;;;;10352:13:0;;;;;:4;:13;;;;;;;10251:158::o;10327:38::-;-1:-1:-1;;;;;10393:13:0;;;;;;:4;:13;;;;;;10373:34;;:19;:34::i;9601:158::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;9677:6:::1;::::0;;9658:33:::1;::::0;-1:-1:-1;;;;;9677:6:0;;::::1;::::0;9658:18:::1;:33::i;:::-;9709:1;9692:19:::0;;-1:-1:-1;;;;;;9692:19:0::1;::::0;;9717:40:::1;::::0;9709:1;;9717:40:::1;::::0;9709:1;;9717:40:::1;9601:158::o:0;11796:257::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;11867:16;::::1;;11878:5;11867:16:::0;11863:188:::1;;-1:-1:-1::0;;;;;;11886:10:0::1;11899:5;11886:10:::0;;;:4:::1;:10;::::0;;;;:18;;-1:-1:-1;;11886:18:0::1;::::0;;14555:569::o;11863:188::-:1;11917:4;::::0;:9;11913:95:::1;;11962:7;11955:4;;11937:15;:22;;;;:::i;:::-;:32;11929:77;;;::::0;-1:-1:-1;;;11929:77:0;;16585:2:1;11929:77:0::1;::::0;::::1;16567:21:1::0;;;16604:18;;;16597:30;16663:34;16643:18;;;16636:62;16715:18;;11929:77:0::1;16383:356:1::0;11929:77:0::1;-1:-1:-1::0;;;;;12008:10:0;::::1;;::::0;;;:4:::1;:10;::::0;;;;:17;;-1:-1:-1;;12008:17:0::1;12021:4;12008:17;::::0;;12033:15:::1;12026:4;:22:::0;11796:257;;:::o;9914:70::-;9955:13;9979:2;9972:9;;;;;:::i;11180:192::-;187:10;11273:4;11312:18;;;:4;:18;;;;;;;;-1:-1:-1;;;;;11312:27:0;;;;;;;;;;11273:4;;11280:78;;11303:7;;11312:45;;11342:15;;11312:45;:::i;10409:134::-;10487:4;10494:35;187:10;10511:9;10522:6;10494:2;:35::i;14162:143::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;14236:3:::1;::::0;-1:-1:-1;;;;;14236:16:0;;::::1;:3:::0;::::1;:16:::0;14228:48:::1;;;::::0;-1:-1:-1;;;14228:48:0;;16946:2:1;14228:48:0::1;::::0;::::1;16928:21:1::0;16985:2;16965:18;;;16958:30;-1:-1:-1;;;17004:18:1;;;16997:49;17063:18;;14228:48:0::1;16744:343:1::0;14228:48:0::1;14278:3;:24:::0;;-1:-1:-1;;;;;;14278:24:0::1;-1:-1:-1::0;;;;;14278:24:0;;;::::1;::::0;;;::::1;::::0;;14162:143::o;21126:98::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;8990:7;9008:6;;21174:48:::1;::::0;-1:-1:-1;;;;;9008:6:0;;;;21200:21:::1;21174:48:::0;::::1;;;::::0;21200:21;;21174:48;8990:7;21174:48;21200:21;9008:6;21174:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21126:98::o:0;14305:146::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;14372:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;14372:32:0::1;-1:-1:-1::0;;;;14372:32:0;;::::1;;::::0;;14411:38:::1;::::0;::::1;::::0;::::1;::::0;14396:8;1951:14:1;1944:22;1926:41;;1914:2;1899:18;;1786:187;14411:38:0::1;;;;;;;;14305:146:::0;:::o;11372:424::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;11435:29:::1;11486:9;11435:61;;11497:11;11529:10;-1:-1:-1::0;;;;;11529:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11511:47:0::1;;11567:4;11574:10;-1:-1:-1::0;;;;;11574:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11511:81;::::0;-1:-1:-1;;;;;;11511:81:0::1;::::0;;;;;;-1:-1:-1;;;;;14951:15:1;;;11511:81:0::1;::::0;::::1;14933:34:1::0;15003:15;;14983:18;;;14976:43;14868:18;;11511:81:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11497:95:::0;-1:-1:-1;;;;;;11597:17:0;::::1;11593:139;;11644:10;-1:-1:-1::0;;;;;11644:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11626:50:0::1;;11685:4;11692:10;-1:-1:-1::0;;;;;11692:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11626:84;::::0;-1:-1:-1;;;;;;11626:84:0::1;::::0;;;;;;-1:-1:-1;;;;;14951:15:1;;;11626:84:0::1;::::0;::::1;14933:34:1::0;15003:15;;14983:18;;;14976:43;14868:18;;11626:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11617:6;:93:::0;;-1:-1:-1;;;;;;11617:93:0::1;-1:-1:-1::0;;;;;11617:93:0;;;::::1;::::0;;;::::1;::::0;;11593:139:::1;;;11718:6;:12:::0;;-1:-1:-1;;;;;;11718:12:0::1;-1:-1:-1::0;;;;;11718:12:0;::::1;;::::0;;11593:139:::1;11732:9;:22:::0;;-1:-1:-1;;;;;;11732:22:0::1;-1:-1:-1::0;;;;;11732:22:0;::::1;;::::0;;11755:39:::1;11772:4;11779:9:::0;-1:-1:-1;;11755:8:0::1;:39::i;13990:172::-:0;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;14073:13:::1;::::0;-1:-1:-1;;;;;14073:26:0;;::::1;:13:::0;::::1;:26:::0;14065:58:::1;;;::::0;-1:-1:-1;;;14065:58:0;;16946:2:1;14065:58:0::1;::::0;::::1;16928:21:1::0;16985:2;16965:18;;;16958:30;-1:-1:-1;;;17004:18:1;;;16997:49;17063:18;;14065:58:0::1;16744:343:1::0;14065:58:0::1;14125:13;:34:::0;;-1:-1:-1;;;;;;14125:34:0::1;-1:-1:-1::0;;;;;14125:34:0;;;::::1;::::0;;;::::1;::::0;;13990:172::o;13727:263::-;6989:6;;-1:-1:-1;;;;;6989:6:0;187:10;6989:22;6981:67;;;;-1:-1:-1;;;6981:67:0;;;;;;;:::i;:::-;13917:16:::1;13897;13887:7;;:26;;;;:::i;:::-;13886:47;;;;:::i;:::-;13870:13;:63:::0;13948:7:::1;::::0;13975:13;;13948:23:::1;::::0;13958:13;;13948:23:::1;:::i;:::-;13947:41;;;;:::i;:::-;13934:10;:54:::0;-1:-1:-1;;;;13727:263:0:o;15617:292::-;-1:-1:-1;;;;;15703:20:0;;15695:69;;;;-1:-1:-1;;;15695:69:0;;17294:2:1;15695:69:0;;;17276:21:1;17333:2;17313:18;;;17306:30;17372:34;17352:18;;;17345:62;-1:-1:-1;;;17423:18:1;;;17416:34;17467:19;;15695:69:0;17092:400:1;15695:69:0;-1:-1:-1;;;;;15774:21:0;;15766:68;;;;-1:-1:-1;;;15766:68:0;;17699:2:1;15766:68:0;;;17681:21:1;17738:2;17718:18;;;17711:30;17777:34;17757:18;;;17750:62;-1:-1:-1;;;17828:18:1;;;17821:32;17870:19;;15766:68:0;17497:398:1;15766:68:0;-1:-1:-1;;;;;15836:12:0;;;;;;;:4;:12;;;;;;;;:21;;;;;;;;;;;;;:30;;;15873:33;;2377:25:1;;;15873:33:0;;2350:18:1;15873:33:0;;;;;;;15617:292;;;:::o;15909:1155::-;15981:4;-1:-1:-1;;;;;15997:18:0;;15989:68;;;;-1:-1:-1;;;15989:68:0;;18102:2:1;15989:68:0;;;18084:21:1;18141:2;18121:18;;;18114:30;18180:34;18160:18;;;18153:62;-1:-1:-1;;;18231:18:1;;;18224:35;18276:19;;15989:68:0;17900:401:1;15989:68:0;-1:-1:-1;;;;;16067:16:0;;16059:64;;;;-1:-1:-1;;;16059:64:0;;18508:2:1;16059:64:0;;;18490:21:1;18547:2;18527:18;;;18520:30;18586:34;18566:18;;;18559:62;-1:-1:-1;;;18637:18:1;;;18630:33;18680:19;;16059:64:0;18306:399:1;16059:64:0;16142:1;16133:6;:10;16125:64;;;;-1:-1:-1;;;16125:64:0;;18912:2:1;16125:64:0;;;18894:21:1;18951:2;18931:18;;;18924:30;18990:34;18970:18;;;18963:62;-1:-1:-1;;;19041:18:1;;;19034:39;19090:19;;16125:64:0;18710:405:1;16125:64:0;16194:20;16205:4;16211:2;16194:10;:20::i;:::-;16191:470;;;16222:7;;;;16218:52;;16233:34;;-1:-1:-1;;;16233:34:0;;19322:2:1;16233:34:0;;;19304:21:1;19361:2;19341:18;;;19334:30;19400:26;19380:18;;;19373:54;19444:18;;16233:34:0;19120:348:1;16218:52:0;16275:15;;;;16271:204;;;-1:-1:-1;;;;;16298:10:0;;;;;;:4;:10;;;;;;;;16294:179;;;16336:16;:12;16351:1;16336:16;:::i;:::-;-1:-1:-1;;;;;16319:13:0;;;;;;:9;:13;;;;;;:33;16311:42;;;;;;-1:-1:-1;;;;;16355:13:0;;;;;;:9;:13;;;;;16371:12;16355:28;;16294:179;;;16421:16;:12;16436:1;16421:16;:::i;:::-;-1:-1:-1;;;;;16402:15:0;;;;;;:9;:15;;;;;;:35;16394:44;;;;;;-1:-1:-1;;;;;16440:15:0;;;;;;:9;:15;;;;;16458:12;16440:30;;16294:179;16494:4;;16484:6;:14;;16476:60;;;;-1:-1:-1;;;16476:60:0;;19675:2:1;16476:60:0;;;19657:21:1;19714:2;19694:18;;;19687:30;19753:34;19733:18;;;19726:62;-1:-1:-1;;;19804:18:1;;;19797:31;19845:19;;16476:60:0;19473:397:1;16476:60:0;16547:14;;-1:-1:-1;;;;;16541:20:0;;;16547:14;;16541:20;;;;:33;;-1:-1:-1;;;;;;16566:8:0;;;;;;:4;:8;;;;;;;;16565:9;16541:33;16538:121;;;16612:4;;16602:6;16586:13;16596:2;16586:9;:13::i;:::-;:22;;;;:::i;:::-;:30;;16578:78;;;;-1:-1:-1;;;16578:78:0;;20077:2:1;16578:78:0;;;20059:21:1;20116:2;20096:18;;;20089:30;20155:34;20135:18;;;20128:62;-1:-1:-1;;;20206:18:1;;;20199:33;20249:19;;16578:78:0;19875:399:1;16578:78:0;-1:-1:-1;;;;;16686:11:0;;16662:12;16686:11;;;:5;:11;;;;;;16677:4;;16686:11;;;:24;;-1:-1:-1;;;;;;16701:9:0;;;;;;:5;:9;;;;;;;;16686:24;16683:47;;;-1:-1:-1;16722:5:0;16683:47;-1:-1:-1;;;;;16735:8:0;;;;;;:4;:8;;;;;;;;16731:291;;;16752:16;;-1:-1:-1;;;16752:16:0;;;;16751:17;:43;;;;-1:-1:-1;16773:21:0;;-1:-1:-1;;;16773:21:0;;;;16751:43;16747:273;;;16799:28;16830:24;16848:4;16830:9;:24::i;:::-;16799:55;;16884:13;;16860:20;:37;16856:162;;16928:10;;16904:20;:34;16901:77;;-1:-1:-1;16965:10:0;;16901:77;16979:36;16994:20;16979:14;:36::i;:::-;16797:223;16747:273;17030:31;17035:4;17041:2;17045:6;17053:7;17030:4;:31::i;:::-;17023:38;15909:1155;-1:-1:-1;;;;;15909:1155:0:o;20441:136::-;20483:7;20494:15;20511;20530:19;:17;:19::i;:::-;20493:56;;-1:-1:-1;20493:56:0;-1:-1:-1;20557:17:0;20493:56;;20557:17;:::i;:::-;20550:24;;;;20441:136;:::o;15197:204::-;15266:4;9008:6;;-1:-1:-1;;;;;15280:15:0;;;9008:6;;15280:15;;;;:33;;-1:-1:-1;8990:7:0;9008:6;-1:-1:-1;;;;;15300:13:0;;;9008:6;;15300:13;;15280:33;:45;;;;-1:-1:-1;;;;;;15318:7:0;;;;;;:3;:7;;;;;;;;15317:8;15280:45;:59;;;;-1:-1:-1;;;;;;15330:9:0;;;;;;:3;:9;;;;;;;;15329:10;15280:59;:73;;;;-1:-1:-1;15349:4:0;;-1:-1:-1;;;;;15343:10:0;;;15349:4;;15343:10;;15280:73;:93;;;;-1:-1:-1;;;;;;15357:16:0;;;;15280:93;:118;;;;-1:-1:-1;;;;;;15377:21:0;;15393:4;15377:21;;15273:125;15197:204;-1:-1:-1;;;15197:204:0:o;17064:995::-;6907:16;:23;;-1:-1:-1;;;;6907:23:0;-1:-1:-1;;;6907:23:0;;;17163:3:::1;::::0;17145:15:::1;::::0;:21:::1;::::0;17163:3;17145:21:::1;:::i;:::-;17141:39:::0;17173:7:::1;17141:39;17181:17;17272:1;17264:3;;17246:15;;:21;;;;:::i;:::-;17226:15;::::0;17203:38:::1;::::0;:20;:38:::1;:::i;:::-;17202:66;;;;:::i;:::-;17201:72;;;;:::i;:::-;17181:92:::0;-1:-1:-1;17275:20:0::1;17298:32;17181:92:::0;17298:20;:32:::1;:::i;:::-;17356:16;::::0;;17370:1:::1;17356:16:::0;;;;;::::1;::::0;;17275:55;;-1:-1:-1;17332:21:0::1;::::0;17356:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17356:16:0::1;17332:40;;17392:4;17374;17379:1;17374:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17374:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17409:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;17409:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;17374:7;;17409:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17399:4;17404:1;17399:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17399:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;17427:9:::1;::::0;:117:::1;::::0;-1:-1:-1;;;17427:117:0;;:9;::::1;::::0;:60:::1;::::0;:117:::1;::::0;17489:12;;17427:9:::1;::::0;17506:4;;17520::::1;::::0;17527:15:::1;::::0;17427:117:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17546:24;17645:1;17637:3;;17619:15;;:21;;;;:::i;:::-;17599:15;::::0;17575:39:::1;::::0;:21:::1;:39;:::i;:::-;17574:67;;;;:::i;:::-;17573:73;;;;:::i;:::-;17546:100:::0;-1:-1:-1;17651:13:0;;17647:190:::1;;17668:9;::::0;17753:3:::1;::::0;17668:106:::1;::::0;-1:-1:-1;;;17668:106:0;;-1:-1:-1;;;;;17668:9:0;;::::1;::::0;:25:::1;::::0;17701:16;;17668:106:::1;::::0;17728:4:::1;::::0;17735:9;;17668::::1;::::0;;;17753:3:::1;::::0;17758:15:::1;::::0;17668:106:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17780:54:0::1;::::0;;22086:25:1;;;22142:2;22127:18;;22120:34;;;22170:18;;;22163:34;;;17780:54:0::1;::::0;-1:-1:-1;22074:2:1;22059:18;17780:54:0::1;;;;;;;17647:190;17877:1;17842:32;17865:9:::0;17842:20;:32:::1;:::i;:::-;:36;17838:219;;;17963:3;::::0;17957::::1;::::0;17906:21:::1;::::0;17881::::1;::::0;17942:19:::1;::::0;17906:21;17942:19:::1;:::i;:::-;:25;;;;:::i;:::-;17929:38;;17969:10;18003:3;;17997;;17982:13;:19;;;;:::i;:::-;:25;;;;:::i;:::-;18009:3;::::0;:16:::1;::::0;17969:38;;-1:-1:-1;;;;;;18009:3:0::1;::::0;:16;::::1;;;::::0;17969:38;;18009:3:::1;:16:::0;:3;:16;17969:38;18009:3;:16;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18028:13:0::1;::::0;:26:::1;::::0;-1:-1:-1;;;;;18028:13:0;;::::1;::::0;:26;::::1;;;::::0;18051:2;;18028:13:::1;:26:::0;:13;:26;18051:2;18028:13;:26;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17880:177;;;17838:219;17139:920;;;;6931:1;-1:-1:-1::0;6933:16:0;:24;;-1:-1:-1;;;;6933:24:0;;;17064:995::o;18725:889::-;18827:16;;18814:4;;18827:16;;;;;18822:156;;18847:28;18866:4;18872:2;18847:18;:28::i;:::-;18882:16;;;;;;;18881:17;:41;;;;;18902:20;18913:4;18919:2;18902:10;:20::i;:::-;18877:99;;;18926:47;;-1:-1:-1;;;18926:47:0;;22410:2:1;18926:47:0;;;22392:21:1;22449:2;22429:18;;;22422:30;22488:34;22468:18;;;22461:62;-1:-1:-1;;;22539:18:1;;;22532:35;22584:19;;18926:47:0;22208:401:1;18877:99:0;18979:25;19007:38;19018:4;19024:2;19028:7;19037;19007:10;:38::i;:::-;19073:14;;;;-1:-1:-1;;;;;19060:10:0;;;;;;:4;:10;;;;;;18979:66;;-1:-1:-1;19060:27:0;;;:::i;:::-;-1:-1:-1;;;;;19047:10:0;;;;;;;:4;:10;;;;;;:40;;;;19111:22;;;;19100:8;;;;;;;;;;:33;;19111:22;19100:33;:::i;:::-;-1:-1:-1;;;;;19089:8:0;;;;;;;:4;:8;;;;;;;;:44;;;;19139:9;;;;;:3;:9;;;;;;;:21;;;;-1:-1:-1;;;;;;19153:7:0;;;;;;:3;:7;;;;;;;;19152:8;19139:21;19135:267;;;-1:-1:-1;;;;;19177:10:0;;;;;;:4;:10;;;;;;:20;;19190:7;;19177:20;:::i;:::-;-1:-1:-1;;;;;19164:10:0;;;;;;:4;:10;;;;;:33;19135:267;;;-1:-1:-1;;;;;19211:9:0;;;;;;:3;:9;;;;;;;;19210:10;:21;;;;-1:-1:-1;;;;;;19224:7:0;;;;;;:3;:7;;;;;;;;19210:21;19206:196;;;19257:22;;-1:-1:-1;;;;;19246:8:0;;19257:22;19246:8;;;:4;:8;;;;;;:33;;19257:22;19246:33;:::i;:::-;-1:-1:-1;;;;;19235:8:0;;;;;;:4;:8;;;;;:44;19206:196;;;-1:-1:-1;;;;;19294:9:0;;;;;;:3;:9;;;;;;;;:20;;;;-1:-1:-1;;;;;;19307:7:0;;;;;;:3;:7;;;;;;;;19294:20;19290:112;;;-1:-1:-1;;;;;19332:10:0;;;;;;:4;:10;;;;;;:20;;19345:7;;19332:20;:::i;:::-;-1:-1:-1;;;;;19319:10:0;;;;;;;:4;:10;;;;;;:33;;;;19377:22;;19366:8;;;;;;;;;;:33;;19377:22;19366:33;:::i;:::-;-1:-1:-1;;;;;19355:8:0;;;;;;:4;:8;;;;;:44;19290:112;19407:17;;;;:21;19403:66;;19430:39;19445:4;19451:6;:17;;;19430:14;:39::i;:::-;19489:1;19475:6;:11;;;:15;:34;;;;19508:1;19494:6;:11;;;:15;19475:34;19471:78;;;19511:38;19524:6;:11;;;19537:6;:11;;;19511:12;:38::i;:::-;19571:2;-1:-1:-1;;;;;19556:42:0;19565:4;-1:-1:-1;;;;;19556:42:0;;19575:6;:22;;;19556:42;;;;2377:25:1;;2365:2;2350:18;;2231:177;19556:42:0;;;;;;;;-1:-1:-1;19607:4:0;;18725:889;-1:-1:-1;;;;;18725:889:0:o;20577:432::-;20665:7;;20691;;20628;;;;;20699:222;20723:9;:16;20719:20;;20699:222;;;20772:7;20751:4;:18;20756:9;20766:1;20756:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20756:12:0;20751:18;;;;;;;;;;;;;:28;;:60;;;20804:7;20783:4;:18;20788:9;20798:1;20788:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20788:12:0;20783:18;;;;;;;;;;;;;:28;20751:60;20747:91;;;20821:7;;20830;;20813:25;;;;;;;20577:432;;:::o;20747:91::-;20860:4;:18;20865:9;20875:1;20865:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20865:12:0;20860:18;;;;;;;;;;;;;20850:28;;:7;:28;:::i;:::-;20840:38;;20900:4;:18;20905:9;20915:1;20905:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20905:12:0;20900:18;;;;;;;;;;;;;20890:28;;:7;:28;:::i;:::-;20880:38;-1:-1:-1;20741:3:0;;;;:::i;:::-;;;;20699:222;;;;20946:7;;20936;;:17;;;;:::i;:::-;20926:7;:27;20922:58;;;20963:7;;20972;;20955:25;;;;;;20577:432;;:::o;20922:58::-;20989:7;;20998;;-1:-1:-1;20577:432:0;-1:-1:-1;20577:432:0:o;18059:318::-;18133:16;;;;;;;18132:17;18124:57;;;;-1:-1:-1;;;18124:57:0;;22816:2:1;18124:57:0;;;22798:21:1;22855:2;22835:18;;;22828:30;22894:29;22874:18;;;22867:57;22941:18;;18124:57:0;22614:351:1;18124:57:0;18188:20;18199:4;18205:2;18188:10;:20::i;:::-;18187:21;:37;;;;-1:-1:-1;18218:6:0;;-1:-1:-1;;;;;18212:12:0;;;18218:6;;18212:12;18187:37;18183:192;;;-1:-1:-1;;;;;18228:9:0;;;;;;:3;:9;;;;;;;:16;;-1:-1:-1;;18228:16:0;18240:4;18228:16;;;;;;18246;:23;;-1:-1:-1;;18246:23:0;18228:16;18246:23;;;18286:15;18271:12;:30;18303:21;:28;;-1:-1:-1;;;;18303:28:0;-1:-1:-1;;;18303:28:0;;;18338:34;;;;;;1951:14:1;;1944:22;1926:41;;1914:2;1899:18;;1786:187;18338:34:0;;;;;;;;18059:318;;:::o;19614:827::-;19709:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19709:18:0;19730:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19730:25:0;19756:19;19778:10;:8;:10::i;:::-;19756:32;-1:-1:-1;19806:21:0;19756:32;19806:7;:21;:::i;:::-;19789:14;;;:38;19828:505;;;;-1:-1:-1;;;;;19845:8:0;;;;;;:4;:8;;;;;;;;19841:168;;;19863:5;;19856:4;:12;19876:5;;19869:4;:12;19889:5;;19882:4;:12;19841:168;;;-1:-1:-1;;;;;19906:10:0;;;;;;:4;:10;;;;;;;;19902:107;;;19926:5;;19919:4;:12;19939:5;;19932:4;:12;19952:5;;19945:4;:12;19902:107;;;19974:5;;19967:4;:12;19988:5;;19981:4;:12;20002:5;;19995:4;:12;19902:107;20042:16;;20034:4;;20024:14;;:7;:14;:::i;:::-;20023:35;;;;:::i;:::-;20009:11;;;:49;20107:16;;20098:4;;20091;;:11;;20098:4;20091:11;:::i;:::-;20080:23;;:7;:23;:::i;:::-;20079:44;;;;:::i;:::-;20059:17;;;:64;;;20160:11;;;;:31;;20059:64;20160:31;:::i;:::-;20149:43;;:7;:43;:::i;:::-;20124:68;;20207:11;;;;:25;;20221:11;;20207:25;:::i;:::-;20193:11;;;:39;19828:505;;;20255:1;20241:11;;;:15;;;20258:17;;;:21;;;20281:32;;;20315:11;;;:15;19828:505;20412:11;20392:6;:17;;;:31;;;;:::i;:::-;20377:6;:11;;;:47;;;;:::i;:::-;20359:6;:14;;;:66;;;;:::i;:::-;20334:22;;;:91;-1:-1:-1;20334:22:0;19614:827;-1:-1:-1;;;;;19614:827:0:o;21224:334::-;21294:19;21317:10;:8;:10::i;:::-;21294:33;-1:-1:-1;21328:18:0;21349:24;21294:33;21349:10;:24;:::i;:::-;21409:4;21396:19;;;;:4;:19;;;;;;21328:45;;-1:-1:-1;21396:32:0;;21328:45;;21396:32;:::i;:::-;21387:4;21374:19;;;;:4;:19;;;;;;;;:54;;;;21432:3;:18;;;;;;21429:77;;;21487:4;21474:19;;;;:4;:19;;;;;;:32;;21496:10;;21474:32;:::i;:::-;21465:4;21452:19;;;;:4;:19;;;;;:54;21429:77;21512:43;;2377:25:1;;;21537:4:0;;-1:-1:-1;;;;;21512:43:0;;;;;2365:2:1;2350:18;21512:43:0;;;;;;;21293:265;;21224:334;;:::o;21009:117::-;21089:4;21079:7;;:14;;;;:::i;:::-;21069:7;:24;21107:10;;:17;;21120:4;;21107:17;:::i;:::-;21094:10;:30;-1:-1:-1;;21009:117:0:o;222:316:1:-;299:6;307;315;368:2;356:9;347:7;343:23;339:32;336:52;;;384:1;381;374:12;336:52;-1:-1:-1;;407:23:1;;;477:2;462:18;;449:32;;-1:-1:-1;528:2:1;513:18;;;500:32;;222:316;-1:-1:-1;222:316:1:o;543:548::-;655:4;684:2;713;702:9;695:21;745:6;739:13;788:6;783:2;772:9;768:18;761:34;813:1;823:140;837:6;834:1;831:13;823:140;;;932:14;;;928:23;;922:30;898:17;;;917:2;894:26;887:66;852:10;;823:140;;;827:3;1012:1;1007:2;998:6;987:9;983:22;979:31;972:42;1082:2;1075;1071:7;1066:2;1058:6;1054:15;1050:29;1039:9;1035:45;1031:54;1023:62;;;;543:548;;;;:::o;1330:131::-;-1:-1:-1;;;;;1405:31:1;;1395:42;;1385:70;;1451:1;1448;1441:12;1466:315;1534:6;1542;1595:2;1583:9;1574:7;1570:23;1566:32;1563:52;;;1611:1;1608;1601:12;1563:52;1650:9;1637:23;1669:31;1694:5;1669:31;:::i;:::-;1719:5;1771:2;1756:18;;;;1743:32;;-1:-1:-1;;;1466:315:1:o;1978:248::-;2046:6;2054;2107:2;2095:9;2086:7;2082:23;2078:32;2075:52;;;2123:1;2120;2113:12;2075:52;-1:-1:-1;;2146:23:1;;;2216:2;2201:18;;;2188:32;;-1:-1:-1;1978:248:1:o;2413:160::-;2478:20;;2534:13;;2527:21;2517:32;;2507:60;;2563:1;2560;2553:12;2507:60;2413:160;;;:::o;2578:315::-;2643:6;2651;2704:2;2692:9;2683:7;2679:23;2675:32;2672:52;;;2720:1;2717;2710:12;2672:52;2759:9;2746:23;2778:31;2803:5;2778:31;:::i;:::-;2828:5;-1:-1:-1;2852:35:1;2883:2;2868:18;;2852:35;:::i;:::-;2842:45;;2578:315;;;;;:::o;2898:456::-;2975:6;2983;2991;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;3099:9;3086:23;3118:31;3143:5;3118:31;:::i;:::-;3168:5;-1:-1:-1;3225:2:1;3210:18;;3197:32;3238:33;3197:32;3238:33;:::i;:::-;2898:456;;3290:7;;-1:-1:-1;;;3344:2:1;3329:18;;;;3316:32;;2898:456::o;3359:180::-;3418:6;3471:2;3459:9;3450:7;3446:23;3442:32;3439:52;;;3487:1;3484;3477:12;3439:52;-1:-1:-1;3510:23:1;;3359:180;-1:-1:-1;3359:180:1:o;3733:247::-;3792:6;3845:2;3833:9;3824:7;3820:23;3816:32;3813:52;;;3861:1;3858;3851:12;3813:52;3900:9;3887:23;3919:31;3944:5;3919:31;:::i;3985:127::-;4046:10;4041:3;4037:20;4034:1;4027:31;4077:4;4074:1;4067:15;4101:4;4098:1;4091:15;4117:719;4160:5;4213:3;4206:4;4198:6;4194:17;4190:27;4180:55;;4231:1;4228;4221:12;4180:55;4267:6;4254:20;4293:18;4330:2;4326;4323:10;4320:36;;;4336:18;;:::i;:::-;4411:2;4405:9;4379:2;4465:13;;-1:-1:-1;;4461:22:1;;;4485:2;4457:31;4453:40;4441:53;;;4509:18;;;4529:22;;;4506:46;4503:72;;;4555:18;;:::i;:::-;4595:10;4591:2;4584:22;4630:2;4622:6;4615:18;4676:3;4669:4;4664:2;4656:6;4652:15;4648:26;4645:35;4642:55;;;4693:1;4690;4683:12;4642:55;4757:2;4750:4;4742:6;4738:17;4731:4;4723:6;4719:17;4706:54;4804:1;4797:4;4792:2;4784:6;4780:15;4776:26;4769:37;4824:6;4815:15;;;;;;4117:719;;;;:::o;4841:836::-;4963:6;4971;4979;4987;5040:3;5028:9;5019:7;5015:23;5011:33;5008:53;;;5057:1;5054;5047:12;5008:53;5096:9;5083:23;5115:31;5140:5;5115:31;:::i;:::-;5165:5;-1:-1:-1;5222:2:1;5207:18;;5194:32;5235:33;5194:32;5235:33;:::i;:::-;5287:7;-1:-1:-1;5345:2:1;5330:18;;5317:32;5368:18;5398:14;;;5395:34;;;5425:1;5422;5415:12;5395:34;5448:50;5490:7;5481:6;5470:9;5466:22;5448:50;:::i;:::-;5438:60;;5551:2;5540:9;5536:18;5523:32;5507:48;;5580:2;5570:8;5567:16;5564:36;;;5596:1;5593;5586:12;5564:36;;5619:52;5663:7;5652:8;5641:9;5637:24;5619:52;:::i;:::-;5609:62;;;4841:836;;;;;;;:::o;5942:180::-;5998:6;6051:2;6039:9;6030:7;6026:23;6022:32;6019:52;;;6067:1;6064;6057:12;6019:52;6090:26;6106:9;6090:26;:::i;6127:388::-;6195:6;6203;6256:2;6244:9;6235:7;6231:23;6227:32;6224:52;;;6272:1;6269;6262:12;6224:52;6311:9;6298:23;6330:31;6355:5;6330:31;:::i;:::-;6380:5;-1:-1:-1;6437:2:1;6422:18;;6409:32;6450:33;6409:32;6450:33;:::i;:::-;6502:7;6492:17;;;6127:388;;;;;:::o;6520:385::-;6606:6;6614;6622;6630;6683:3;6671:9;6662:7;6658:23;6654:33;6651:53;;;6700:1;6697;6690:12;6651:53;-1:-1:-1;;6723:23:1;;;6793:2;6778:18;;6765:32;;-1:-1:-1;6844:2:1;6829:18;;6816:32;;6895:2;6880:18;6867:32;;-1:-1:-1;6520:385:1;-1:-1:-1;6520:385:1:o;6910:356::-;7112:2;7094:21;;;7131:18;;;7124:30;7190:34;7185:2;7170:18;;7163:62;7257:2;7242:18;;6910:356::o;7271:127::-;7332:10;7327:3;7323:20;7320:1;7313:31;7363:4;7360:1;7353:15;7387:4;7384:1;7377:15;7403:125;7468:9;;;7489:10;;;7486:36;;;7502:18;;:::i;7533:380::-;7612:1;7608:12;;;;7655;;;7676:61;;7730:4;7722:6;7718:17;7708:27;;7676:61;7783:2;7775:6;7772:14;7752:18;7749:38;7746:161;;7829:10;7824:3;7820:20;7817:1;7810:31;7864:4;7861:1;7854:15;7892:4;7889:1;7882:15;7746:161;;7533:380;;;:::o;7918:168::-;7958:7;8024:1;8020;8016:6;8012:14;8009:1;8006:21;8001:1;7994:9;7987:17;7983:45;7980:71;;;8031:18;;:::i;:::-;-1:-1:-1;8071:9:1;;7918:168::o;8091:127::-;8152:10;8147:3;8143:20;8140:1;8133:31;8183:4;8180:1;8173:15;8207:4;8204:1;8197:15;8223:120;8263:1;8289;8279:35;;8294:18;;:::i;:::-;-1:-1:-1;8328:9:1;;8223:120::o;8348:399::-;8550:2;8532:21;;;8589:2;8569:18;;;8562:30;8628:34;8623:2;8608:18;;8601:62;-1:-1:-1;;;8694:2:1;8679:18;;8672:33;8737:3;8722:19;;8348:399::o;9466:127::-;9527:10;9522:3;9518:20;9515:1;9508:31;9558:4;9555:1;9548:15;9582:4;9579:1;9572:15;9598:128;9665:9;;;9686:11;;;9683:37;;;9700:18;;:::i;9731:127::-;9792:10;9787:3;9783:20;9780:1;9773:31;9823:4;9820:1;9813:15;9847:4;9844:1;9837:15;9863:135;9902:3;9923:17;;;9920:43;;9943:18;;:::i;:::-;-1:-1:-1;9990:1:1;9979:13;;9863:135::o;10896:545::-;10998:2;10993:3;10990:11;10987:448;;;11034:1;11059:5;11055:2;11048:17;11104:4;11100:2;11090:19;11174:2;11162:10;11158:19;11155:1;11151:27;11145:4;11141:38;11210:4;11198:10;11195:20;11192:47;;;-1:-1:-1;11233:4:1;11192:47;11288:2;11283:3;11279:12;11276:1;11272:20;11266:4;11262:31;11252:41;;11343:82;11361:2;11354:5;11351:13;11343:82;;;11406:17;;;11387:1;11376:13;11343:82;;;11347:3;;;10896:545;;;:::o;11617:1352::-;11743:3;11737:10;11770:18;11762:6;11759:30;11756:56;;;11792:18;;:::i;:::-;11821:97;11911:6;11871:38;11903:4;11897:11;11871:38;:::i;:::-;11865:4;11821:97;:::i;:::-;11973:4;;12037:2;12026:14;;12054:1;12049:663;;;;12756:1;12773:6;12770:89;;;-1:-1:-1;12825:19:1;;;12819:26;12770:89;-1:-1:-1;;11574:1:1;11570:11;;;11566:24;11562:29;11552:40;11598:1;11594:11;;;11549:57;12872:81;;12019:944;;12049:663;10843:1;10836:14;;;10880:4;10867:18;;-1:-1:-1;;12085:20:1;;;12203:236;12217:7;12214:1;12211:14;12203:236;;;12306:19;;;12300:26;12285:42;;12398:27;;;;12366:1;12354:14;;;;12233:19;;12203:236;;;12207:3;12467:6;12458:7;12455:19;12452:201;;;12528:19;;;12522:26;-1:-1:-1;;12611:1:1;12607:14;;;12623:3;12603:24;12599:37;12595:42;12580:58;12565:74;;12452:201;-1:-1:-1;;;;;12699:1:1;12683:14;;;12679:22;12666:36;;-1:-1:-1;11617:1352:1:o;12974:422::-;13063:1;13106:5;13063:1;13120:270;13141:7;13131:8;13128:21;13120:270;;;13200:4;13196:1;13192:6;13188:17;13182:4;13179:27;13176:53;;;13209:18;;:::i;:::-;13259:7;13249:8;13245:22;13242:55;;;13279:16;;;;13242:55;13358:22;;;;13318:15;;;;13120:270;;;13124:3;12974:422;;;;;:::o;13401:806::-;13450:5;13480:8;13470:80;;-1:-1:-1;13521:1:1;13535:5;;13470:80;13569:4;13559:76;;-1:-1:-1;13606:1:1;13620:5;;13559:76;13651:4;13669:1;13664:59;;;;13737:1;13732:130;;;;13644:218;;13664:59;13694:1;13685:10;;13708:5;;;13732:130;13769:3;13759:8;13756:17;13753:43;;;13776:18;;:::i;:::-;-1:-1:-1;;13832:1:1;13818:16;;13847:5;;13644:218;;13946:2;13936:8;13933:16;13927:3;13921:4;13918:13;13914:36;13908:2;13898:8;13895:16;13890:2;13884:4;13881:12;13877:35;13874:77;13871:159;;;-1:-1:-1;13983:19:1;;;14015:5;;13871:159;14062:34;14087:8;14081:4;14062:34;:::i;:::-;14132:6;14128:1;14124:6;14120:19;14111:7;14108:32;14105:58;;;14143:18;;:::i;:::-;14181:20;;13401:806;-1:-1:-1;;;13401:806:1:o;14212:131::-;14272:5;14301:36;14328:8;14322:4;14301:36;:::i;14348:112::-;14380:1;14406;14396:35;;14411:18;;:::i;:::-;-1:-1:-1;14445:9:1;;14348:112::o;14465:251::-;14535:6;14588:2;14576:9;14567:7;14563:23;14559:32;14556:52;;;14604:1;14601;14594:12;14556:52;14636:9;14630:16;14655:31;14680:5;14655:31;:::i;15030:607::-;-1:-1:-1;;;;;15389:15:1;;;15371:34;;15436:2;15421:18;;15414:34;;;;15479:2;15464:18;;15457:34;;;;15522:2;15507:18;;15500:34;;;;15571:15;;;15565:3;15550:19;;15543:44;15351:3;15603:19;;15596:35;;;;15320:3;15305:19;;15030:607::o;15642:306::-;15730:6;15738;15746;15799:2;15787:9;15778:7;15774:23;15770:32;15767:52;;;15815:1;15812;15805:12;15767:52;15844:9;15838:16;15828:26;;15894:2;15883:9;15879:18;15873:25;15863:35;;15938:2;15927:9;15923:18;15917:25;15907:35;;15642:306;;;;;:::o;15953:425::-;16155:2;16137:21;;;16194:2;16174:18;;;16167:30;16233:34;16228:2;16213:18;;16206:62;16304:31;16299:2;16284:18;;16277:59;16368:3;16353:19;;15953:425::o;20279:980::-;20541:4;20589:3;20578:9;20574:19;20620:6;20609:9;20602:25;20646:2;20684:6;20679:2;20668:9;20664:18;20657:34;20727:3;20722:2;20711:9;20707:18;20700:31;20751:6;20786;20780:13;20817:6;20809;20802:22;20855:3;20844:9;20840:19;20833:26;;20894:2;20886:6;20882:15;20868:29;;20915:1;20925:195;20939:6;20936:1;20933:13;20925:195;;;21004:13;;-1:-1:-1;;;;;21000:39:1;20988:52;;21095:15;;;;21060:12;;;;21036:1;20954:9;20925:195;;;-1:-1:-1;;;;;;;21176:32:1;;;;21171:2;21156:18;;21149:60;-1:-1:-1;;;21240:3:1;21225:19;21218:35;21137:3;20279:980;-1:-1:-1;;;20279:980:1:o

Swarm Source

ipfs://066b011a8a2b8e19c95125e1c5ed96853deb1f2f14526fe5e5d0c185230df631
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.