Token CRONOS GALAXY
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
424,597.09963 GLX
Holders:
350 addresses
Contract:
Decimals:
5
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CRONOSGALAXY
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-04-02 */ // ShimonsSays //SPDX-License-Identifier: MIT /* titano forks on Cronos. */ pragma solidity ^0.7.4; library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IPancakeSwapPair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IPancakeSwapRouter{ function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); 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; } interface IPancakeSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } contract Ownable { address private _owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner()); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory name_, string memory symbol_, uint8 decimals_ ) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract CRONOSGALAXY is ERC20Detailed, Ownable { using SafeMath for uint256; using SafeMathInt for int256; event LogRebase(uint256 indexed epoch, uint256 totalSupply); string public _name = "CRONOS GALAXY"; string public _symbol = "GLX"; uint8 public _decimals = 5; IPancakeSwapPair public pairContract; mapping(address => bool) _isFeeExempt; modifier validRecipient(address to) { require(to != address(0x0)); _; } uint256 public constant DECIMALS = 5; uint256 public constant MAX_UINT256 = ~uint256(0); uint8 public constant RATE_DECIMALS = 7; uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 325 * 10**3 * 10**DECIMALS; uint256 public liquidityFee = 40; uint256 public treasuryFee = 5; uint256 public opInsuranceFundFee = 50; uint256 public sellFee = 60; uint256 public thunderDomeFee = 25; uint256 public totalFee = liquidityFee.add(treasuryFee).add(opInsuranceFundFee).add( thunderDomeFee ); uint256 public feeDenominator = 1000; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address public autoLiquidityReceiver; address public treasuryReceiver; address public opInsuranceFundReceiver; address public thunderDome; address public pairAddress; bool public swapEnabled = true; IPancakeSwapRouter public router; address public pair; bool inSwap = false; modifier swapping() { inSwap = true; _; inSwap = false; } uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); uint256 private constant MAX_SUPPLY = 325 * 10**7 * 10**DECIMALS; bool public _autoRebase; bool public _autoAddLiquidity; uint256 public _initRebaseStartTime; uint256 public _lastRebasedTime; uint256 public _lastAddLiquidityTime; uint256 public _totalSupply; uint256 private _gonsPerFragment; mapping(address => uint256) private _gonBalances; mapping(address => mapping(address => uint256)) private _allowedFragments; mapping(address => bool) public blacklist; constructor() ERC20Detailed("CRONOS GALAXY", "GLX", uint8(DECIMALS)) Ownable() { router = IPancakeSwapRouter(0x145677FC4d9b8F19B5D56d1820c48e0443049a30); pair = IPancakeSwapFactory(router.factory()).createPair( router.WETH(), address(this) ); autoLiquidityReceiver = 0x34029106deEbB0c24E4F6e9C81f22d1590173658; treasuryReceiver = 0x34029106deEbB0c24E4F6e9C81f22d1590173658; opInsuranceFundReceiver = 0x34029106deEbB0c24E4F6e9C81f22d1590173658; thunderDome = 0x34029106deEbB0c24E4F6e9C81f22d1590173658; _allowedFragments[address(this)][address(router)] = uint256(-1); pairAddress = pair; pairContract = IPancakeSwapPair(pair); _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonBalances[treasuryReceiver] = TOTAL_GONS; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _initRebaseStartTime = block.timestamp; _lastRebasedTime = block.timestamp; _autoRebase = true; _autoAddLiquidity = true; _isFeeExempt[treasuryReceiver] = true; _isFeeExempt[address(this)] = true; _transferOwnership(treasuryReceiver); emit Transfer(address(0x0), treasuryReceiver, _totalSupply); } function rebase() internal { if ( inSwap ) return; uint256 rebaseRate; uint256 deltaTimeFromInit = block.timestamp - _initRebaseStartTime; uint256 deltaTime = block.timestamp - _lastRebasedTime; uint256 times = deltaTime.div(15 minutes); uint256 epoch = times.mul(15); if (deltaTimeFromInit < (365 days)) { rebaseRate = 2368; } else if (deltaTimeFromInit >= (365 days)) { rebaseRate = 224; } else if (deltaTimeFromInit >= ((15 * 365 days) / 10)) { rebaseRate = 20; } else if (deltaTimeFromInit >= (7 * 365 days)) { rebaseRate = 3; } for (uint256 i = 0; i < times; i++) { _totalSupply = _totalSupply .mul((10**RATE_DECIMALS).add(rebaseRate)) .div(10**RATE_DECIMALS); } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _lastRebasedTime = _lastRebasedTime.add(times.mul(15 minutes)); pairContract.sync(); emit LogRebase(epoch, _totalSupply); } function transfer(address to, uint256 value) external override validRecipient(to) returns (bool) { _transferFrom(msg.sender, to, value); return true; } function transferFrom( address from, address to, uint256 value ) external override validRecipient(to) returns (bool) { if (_allowedFragments[from][msg.sender] != uint256(-1)) { _allowedFragments[from][msg.sender] = _allowedFragments[from][ msg.sender ].sub(value, "Insufficient Allowance"); } _transferFrom(from, to, value); return true; } function _basicTransfer( address from, address to, uint256 amount ) internal returns (bool) { uint256 gonAmount = amount.mul(_gonsPerFragment); _gonBalances[from] = _gonBalances[from].sub(gonAmount); _gonBalances[to] = _gonBalances[to].add(gonAmount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(!blacklist[sender] && !blacklist[recipient], "in_blacklist"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldRebase()) { rebase(); } if (shouldAddLiquidity()) { addLiquidity(); } if (shouldSwapBack()) { swapBack(); } uint256 gonAmount = amount.mul(_gonsPerFragment); _gonBalances[sender] = _gonBalances[sender].sub(gonAmount); uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount; _gonBalances[recipient] = _gonBalances[recipient].add( gonAmountReceived ); emit Transfer( sender, recipient, gonAmountReceived.div(_gonsPerFragment) ); return true; } function takeFee( address sender, address recipient, uint256 gonAmount ) internal returns (uint256) { uint256 _totalFee = totalFee; uint256 _treasuryFee = treasuryFee; if (recipient == pair) { _totalFee = totalFee.add(sellFee); _treasuryFee = treasuryFee.add(sellFee); } uint256 feeAmount = gonAmount.div(feeDenominator).mul(_totalFee); _gonBalances[thunderDome] = _gonBalances[thunderDome].add( gonAmount.div(feeDenominator).mul(thunderDomeFee) ); _gonBalances[address(this)] = _gonBalances[address(this)].add( gonAmount.div(feeDenominator).mul(_treasuryFee.add(opInsuranceFundFee)) ); _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add( gonAmount.div(feeDenominator).mul(liquidityFee) ); emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment)); return gonAmount.sub(feeAmount); } function addLiquidity() internal swapping { uint256 autoLiquidityAmount = _gonBalances[autoLiquidityReceiver].div( _gonsPerFragment ); _gonBalances[address(this)] = _gonBalances[address(this)].add( _gonBalances[autoLiquidityReceiver] ); _gonBalances[autoLiquidityReceiver] = 0; uint256 amountToLiquify = autoLiquidityAmount.div(2); uint256 amountToSwap = autoLiquidityAmount.sub(amountToLiquify); if( amountToSwap == 0 ) { return; } address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETHLiquidity = address(this).balance.sub(balanceBefore); if (amountToLiquify > 0&&amountETHLiquidity > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); } _lastAddLiquidityTime = block.timestamp; } function swapBack() internal swapping { uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment); if( amountToSwap == 0) { return; } uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETHToTreasuryAndSIF = address(this).balance.sub( balanceBefore ); (bool success, ) = payable(treasuryReceiver).call{ value: amountETHToTreasuryAndSIF.mul(treasuryFee).div( treasuryFee.add(opInsuranceFundFee) ), gas: 30000 }(""); (success, ) = payable(opInsuranceFundReceiver).call{ value: amountETHToTreasuryAndSIF.mul(opInsuranceFundFee).div( treasuryFee.add(opInsuranceFundFee) ), gas: 30000 }(""); } function withdrawAllToTreasury() external swapping onlyOwner { uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment); require( amountToSwap > 0,"There is no OP deposited in token contract"); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, treasuryReceiver, block.timestamp ); } function shouldTakeFee(address from, address to) internal view returns (bool) { return (pair == from || pair == to) && !_isFeeExempt[from]; } function shouldRebase() internal view returns (bool) { return _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && !inSwap && block.timestamp >= (_lastRebasedTime + 15 minutes); } function shouldAddLiquidity() internal view returns (bool) { return _autoAddLiquidity && !inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 2 days); } function shouldSwapBack() internal view returns (bool) { return !inSwap && msg.sender != pair ; } function setAutoRebase(bool _flag) external onlyOwner { if (_flag) { _autoRebase = _flag; _lastRebasedTime = block.timestamp; } else { _autoRebase = _flag; } } function setAutoAddLiquidity(bool _flag) external onlyOwner { if(_flag) { _autoAddLiquidity = _flag; _lastAddLiquidityTime = block.timestamp; } else { _autoAddLiquidity = _flag; } } function allowance(address owner_, address spender) external view override returns (uint256) { return _allowedFragments[owner_][spender]; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub( subtractedValue ); } emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][ spender ].add(addedValue); emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function approve(address spender, uint256 value) external override returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function checkFeeExempt(address _addr) external view returns (bool) { return _isFeeExempt[_addr]; } function getCirculatingSupply() public view returns (uint256) { return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div( _gonsPerFragment ); } function isNotInSwap() external view returns (bool) { return !inSwap; } function manualSync() external { IPancakeSwapPair(pair).sync(); } function setFeeReceivers( address _autoLiquidityReceiver, address _treasuryReceiver, address _opInsuranceFundReceiver, address _thunderDome ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; treasuryReceiver = _treasuryReceiver; opInsuranceFundReceiver = _opInsuranceFundReceiver; thunderDome = _thunderDome; } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment); return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()); } function setWhitelistMultiple(address[] calldata _addr) external onlyOwner { for(uint256 i; i< _addr.length;i++){ _isFeeExempt[_addr[i]] = true; } } function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner { require(isContract(_botAddress), "only contract address, not allowed exteranlly owned account"); blacklist[_botAddress] = _flag; } function setPairAddress(address _pairAddress) public onlyOwner { pairAddress = _pairAddress; } function setLP(address _address) external onlyOwner { pairContract = IPancakeSwapPair(_address); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address who) external view override returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } function isContract(address addr) internal view returns (bool) { uint size; assembly { size := extcodesize(addr) } return size > 0; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastRebasedTime","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":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"opInsuranceFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"opInsuranceFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract IPancakeSwapPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IPancakeSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_opInsuranceFundReceiver","type":"address"},{"internalType":"address","name":"_thunderDome","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"setWhitelistMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thunderDome","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thunderDomeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600d60808190526c43524f4e4f532047414c41585960981b60a0908152620000309160039190620006ba565b506040805180820190915260038082526208e98b60eb1b60209092019182526200005d91600491620006ba565b506005805460ff19168117815560286007819055600882905560326009819055603c600a556019600b819055620000bf939092620000ab9291839190620004ec602090811b6200185e17901c565b620004ec60201b6200185e1790919060201c565b600c556103e8600d55600e80546001600160a01b031990811661dead17909155600f805490911690556014805460ff60a01b19908116600160a01b179091556016805490911690553480156200011457600080fd5b50604080518082018252600d81526c43524f4e4f532047414c41585960981b60208083019182528351808501909452600384526208e98b60eb1b908401528151919291600591620001699160009190620006ba565b5081516200017f906001906020850190620006ba565b506002805460ff191660ff9290921691909117610100600160a81b031916610100330217905550506015805473145677fc4d9b8f19b5d56d1820c48e0443049a306001600160a01b031990911617908190556040805163c45a015560e01b815290516001600160a01b039092169163c45a015591600480820192602092909190829003018186803b1580156200021457600080fd5b505afa15801562000229573d6000803e3d6000fd5b505050506040513d60208110156200024057600080fd5b5051601554604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b1580156200028f57600080fd5b505afa158015620002a4573d6000803e3d6000fd5b505050506040513d6020811015620002bb57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200030b57600080fd5b505af115801562000320573d6000803e3d6000fd5b505050506040513d60208110156200033757600080fd5b5051601680546001600160a01b03199081166001600160a01b03938416178255601080547334029106deebb0c24e4f6e9c81f22d159017365890831681179091556011805483168217815560128054841683179055601380548416909217909155306000908152601d60209081526040808320601554881684528252808320600019905594546014805491881691909516811790945560058054610100600160a81b0319166101009095029490941790935564079126a500601a90815591549094168452601c8252919092206325878aff1990819055905462000423926200054e811b620018b817901c565b601b554260178190556018556016805460ff60b01b1960ff60a81b19909116600160a81b1716600160b01b179055601180546001600160a01b03908116600090815260066020526040808220805460ff199081166001908117909255308452919092208054909116909117905590546200049e911662000598565b601154601a5460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a362000766565b60008282018381101562000547576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006200054783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200061360201b60201c565b6001600160a01b038116620005ac57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183620006a35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006675781810151838201526020016200064d565b50505050905090810190601f168015620006955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620006b057fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620006f257600085556200073d565b82601f106200070d57805160ff19168380011785556200073d565b828001600101855582156200073d579182015b828111156200073d57825182559160200191906001019062000720565b506200074b9291506200074f565b5090565b5b808211156200074b576000815560010162000750565b61295380620007766000396000f3fe60806040526004361061037a5760003560e01c806370a08231116101d1578063a9059cbb11610102578063d28d8852116100a0578063e15beb801161006f578063e15beb8014610afa578063f2fde38b14610b26578063f887ea4014610b59578063f9f92be414610b6e57610381565b8063d28d885214610a4d578063d439979014610a62578063d51ed1c814610a95578063dd62ed3e14610abf57610381565b8063bd595581116100dc578063bd595581146109e2578063ca33e64c146109f7578063cc32d17614610a0c578063cfbac92f14610a2157610381565b8063a9059cbb1461097f578063afb9cf6d146109b8578063b09f1266146109cd57610381565b806398118cb41161016f578063a22d483211610149578063a22d4832146108e9578063a457c2d71461091c578063a8aa1b3114610955578063a8b089821461096a57610381565b806398118cb4146108aa5780639b2912cc146108bf5780639b87676c146108d457610381565b806383b4ac68116101ab57806383b4ac68146108565780638da5cb5b1461086b5780638f32d59b1461088057806395d89b411461089557610381565b806370a08231146107f9578063715018a61461082c578063753d02a11461084157610381565b8063313ce567116102ab5780633e9931cf116102495780635203d861116102235780635203d861146107a55780635a604c52146107ba5780636912652c146107cf5780636ddd1713146107e457610381565b80633e9931cf146107665780633eaaf86b1461077b5780634d709adf1461079057610381565b806333a581d21161028557806333a581d21461069257806337c9be87146106a757806339509351146106e25780633c8e556d1461071b57610381565b8063313ce5671461063d57806332424aa31461066857806332b756831461067d57610381565b806323b872dd116103185780632b112e49116102f25780632b112e49146105cb5780632b14ca56146105e05780632e0f2625146105f55780632f34d2821461060a57610381565b806323b872dd146104f457806327cb102f146105375780632adddc4e1461054c57610381565b80630b403f60116103545780630b403f601461048e578063180b0d7e146104a357806318160ddd146104ca5780631df4ccfc146104df57610381565b806306fdde031461038657806308b1fd8f14610410578063095ea7b31461044157610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ba1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b50610425610c37565b604080516001600160a01b039092168252519081900360200190f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610c46565b604080519115158252519081900360200190f35b34801561049a57600080fd5b50610425610cad565b3480156104af57600080fd5b506104b8610cbc565b60408051918252519081900360200190f35b3480156104d657600080fd5b506104b8610cc2565b3480156104eb57600080fd5b506104b8610cc8565b34801561050057600080fd5b5061047a6004803603606081101561051757600080fd5b506001600160a01b03813581169160208101359091169060400135610cce565b34801561054357600080fd5b506104b8610da8565b34801561055857600080fd5b506105c96004803603602081101561056f57600080fd5b81019060208101813564010000000081111561058a57600080fd5b82018360208201111561059c57600080fd5b803590602001918460208302840111640100000000831117156105be57600080fd5b509092509050610dae565b005b3480156105d757600080fd5b506104b8610e1a565b3480156105ec57600080fd5b506104b8610e74565b34801561060157600080fd5b506104b8610e7a565b34801561061657600080fd5b506105c96004803603602081101561062d57600080fd5b50356001600160a01b0316610e7f565b34801561064957600080fd5b50610652610eb8565b6040805160ff9092168252519081900360200190f35b34801561067457600080fd5b50610652610ec1565b34801561068957600080fd5b506104b8610eca565b34801561069e57600080fd5b506104b8610ed0565b3480156106b357600080fd5b506105c9600480360360408110156106ca57600080fd5b506001600160a01b0381351690602001351515610ed6565b3480156106ee57600080fd5b5061047a6004803603604081101561070557600080fd5b506001600160a01b038135169060200135610f56565b34801561072757600080fd5b506105c96004803603608081101561073e57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610fe9565b34801561077257600080fd5b5061042561104a565b34801561078757600080fd5b506104b8611059565b34801561079c57600080fd5b5061042561105f565b3480156107b157600080fd5b506104b8611073565b3480156107c657600080fd5b50610652611079565b3480156107db57600080fd5b5061047a61107e565b3480156107f057600080fd5b5061047a61108e565b34801561080557600080fd5b506104b86004803603602081101561081c57600080fd5b50356001600160a01b031661109e565b34801561083857600080fd5b506105c96110c6565b34801561084d57600080fd5b506105c9611126565b34801561086257600080fd5b5061047a611190565b34801561087757600080fd5b506104256111a1565b34801561088c57600080fd5b5061047a6111b5565b3480156108a157600080fd5b5061039b6111cb565b3480156108b657600080fd5b506104b861122b565b3480156108cb57600080fd5b506104b8611231565b3480156108e057600080fd5b506104b8611237565b3480156108f557600080fd5b506105c96004803603602081101561090c57600080fd5b50356001600160a01b031661123d565b34801561092857600080fd5b5061047a6004803603604081101561093f57600080fd5b506001600160a01b038135169060200135611270565b34801561096157600080fd5b50610425611359565b34801561097657600080fd5b50610425611368565b34801561098b57600080fd5b5061047a600480360360408110156109a257600080fd5b506001600160a01b038135169060200135611377565b3480156109c457600080fd5b5061047a6113a3565b3480156109d957600080fd5b5061039b6113b3565b3480156109ee57600080fd5b506105c9611441565b348015610a0357600080fd5b5061042561166e565b348015610a1857600080fd5b506104b861167d565b348015610a2d57600080fd5b506105c960048036036020811015610a4457600080fd5b50351515611683565b348015610a5957600080fd5b5061039b6116d5565b348015610a6e57600080fd5b5061047a60048036036020811015610a8557600080fd5b50356001600160a01b0316611730565b348015610aa157600080fd5b506104b860048036036020811015610ab857600080fd5b503561174e565b348015610acb57600080fd5b506104b860048036036040811015610ae257600080fd5b506001600160a01b03813581169160200135166117a2565b348015610b0657600080fd5b506105c960048036036020811015610b1d57600080fd5b503515156117cd565b348015610b3257600080fd5b506105c960048036036020811015610b4957600080fd5b50356001600160a01b0316611820565b348015610b6557600080fd5b5061042561183a565b348015610b7a57600080fd5b5061047a60048036036020811015610b9157600080fd5b50356001600160a01b0316611849565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b820191906000526020600020905b815481529060010190602001808311610c1057829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6013546001600160a01b031681565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610ce457600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d91576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d6c9185906118fa565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d9c858585611991565b50600195945050505050565b60095481565b610db66111b5565b610dbf57600080fd5b60005b81811015610e1557600160066000858585818110610ddc57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101610dc2565b505050565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610e6f929091610e699190610e63906325878aff1990611b82565b90611b82565b906118b8565b905090565b600a5481565b600581565b610e876111b5565b610e9057600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610ede6111b5565b610ee757600080fd5b610ef082611bc4565b610f2b5760405162461bcd60e51b815260040180806020018281038252603b8152602001806128b9603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610f84908361185e565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610ff16111b5565b610ffa57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b6012546001600160a01b031681565b601a5481565b60055461010090046001600160a01b031681565b600b5481565b600781565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610ca791906118b8565b6110ce6111b5565b6110d757600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561117657600080fd5b505af115801561118a573d6000803e3d6000fd5b50505050565b601654600160a01b900460ff161590565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b60075481565b60195481565b60175481565b6112456111b5565b61124e57600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b03861684529091528120548083106112c457336000908152601d602090815260408083206001600160a01b03881684529091528120556112f3565b6112ce8184611b82565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661138d57600080fd5b611398338585611991565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156114395780601f1061140e57610100808354040283529160200191611439565b820191906000526020600020905b81548152906001019060200180831161141c57829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b17905561145c6111b5565b61146557600080fd5b601b54306000908152601c6020526040812054909161148491906118b8565b9050600081116114c55760405162461bcd60e51b815260040180806020018281038252602a8152602001806128f4602a913960400191505060405180910390fd5b604080516002808252606080830184529260208301908036833701905050905030816000815181106114f357fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561154757600080fd5b505afa15801561155b573d6000803e3d6000fd5b505050506040513d602081101561157157600080fd5b505181518290600190811061158257fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561161c578181015183820152602001611604565b505050509050019650505050505050600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b61168b6111b5565b61169457600080fd5b80156116ba576016805460ff60b01b1916600160b01b83151502179055426019556116d2565b6016805460ff60b01b1916600160b01b831515021790555b50565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156114395780601f1061140e57610100808354040283529160200191611439565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c602052604081205490918291611779916118b8565b905061179b611786610e1a565b610e69611794846002611bca565b8690611bca565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6117d56111b5565b6117de57600080fd5b8015611804576016805460ff60a81b1916600160a81b83151502179055426018556116d2565b60168054821515600160a81b0260ff60a81b1990911617905550565b6118286111b5565b61183157600080fd5b6116d281611c23565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b60008282018381101561179b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061179b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c9d565b600081848411156119895760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194e578181015183820152602001611936565b50505050905090810190601f16801561197b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff161580156119d357506001600160a01b0383166000908152601e602052604090205460ff16155b611a13576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff1615611a3757611a30848484611d02565b905061179b565b611a3f611d94565b15611a4c57611a4c611dfa565b611a54611f9d565b15611a6157611a61611ff0565b611a6961232d565b15611a7657611a76612358565b6000611a8d601b5484611bca90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611ab39082611b82565b6001600160a01b0386166000908152601c6020526040812091909155611ad9868661267b565b611ae35781611aee565b611aee8686846126cf565b6001600160a01b0386166000908152601c6020526040902054909150611b14908261185e565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b659085906118b8565b60408051918252519081900360200190a350600195945050505050565b600061179b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118fa565b3b151590565b600082611bd957506000610ca7565b82820282848281611be657fe5b041461179b5760405162461bcd60e51b81526004018080602001828103825260218152602001806128986021913960400191505060405180910390fd5b6001600160a01b038116611c3657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611cec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561194e578181015183820152602001611936565b506000838581611cf857fe5b0495945050505050565b600080611d1a601b5484611bca90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611d409082611b82565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611d6f908261185e565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611db85750601a5466012795f58d5000115b8015611dcf57506016546001600160a01b03163314155b8015611de55750601654600160a01b900460ff16155b8015610e6f5750506018546103840142101590565b601654600160a01b900460ff1615611e1157611f9b565b6017546018546000914290810391900382611e2e826103846118b8565b90506000611e3d82600f611bca565b90506301e13380841015611e55576109409450611e8d565b6301e133808410611e695760e09450611e8d565b6302d1cd408410611e7d5760149450611e8d565b630d2868808410611e8d57600394505b60005b82811015611ec057611eb562989680610e69611eac828a61185e565b601a5490611bca565b601a55600101611e90565b50601a54611ed4906325878aff19906118b8565b601b55611eef611ee683610384611bca565b6018549061185e565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f4557600080fd5b505af1158015611f59573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611fc35750601654600160a01b900460ff16155b8015611fda57506016546001600160a01b03163314155b8015610e6f5750506019546202a3000142101590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c6020526040812054909161202d91906118b8565b6010546001600160a01b03166000908152601c60205260408082205430835291205491925061205c919061185e565b306000908152601c6020526040808220929092556010546001600160a01b0316815290812081905561208f8260026118b8565b9050600061209d8383611b82565b9050806120ac5750505061231e565b604080516002808252606080830184529260208301908036833701905050905030816000815181106120da57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561212e57600080fd5b505afa158015612142573d6000803e3d6000fd5b505050506040513d602081101561215857600080fd5b505181518290600190811061216957fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156122035781810151838201526020016121eb565b505050509050019650505050505050600060405180830381600087803b15801561222c57600080fd5b505af1158015612240573d6000803e3d6000fd5b5050505060006122598247611b8290919063ffffffff16565b905060008511801561226b5750600081115b15612313576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b1580156122e557600080fd5b505af11580156122f9573d6000803e3d6000fd5b50505050506040513d606081101561231057600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610e6f5750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c6020526040812054909161238a91906118b8565b905080612397575061231e565b6040805160028082526060808301845247939092919060208301908036833701905050905030816000815181106123ca57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561241e57600080fd5b505afa158015612432573d6000803e3d6000fd5b505050506040513d602081101561244857600080fd5b505181518290600190811061245957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156125135781810151838201526020016124fb565b505050509050019650505050505050600060405180830381600087803b15801561253c57600080fd5b505af1158015612550573d6000803e3d6000fd5b5050505060006125698347611b8290919063ffffffff16565b6011546009546008549293506000926001600160a01b03909216916125a091612592919061185e565b600854610e69908690611bca565b60405161753091906000818181858888f193505050503d80600081146125e2576040519150601f19603f3d011682016040523d82523d6000602084013e6125e7565b606091505b50506012546009546008549293506001600160a01b039091169161261d9161260f919061185e565b600954610e69908690611bca565b60405161753091906000818181858888f193505050503d806000811461265f576040519150601f19603f3d011682016040523d82523d6000602084013e612664565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b03848116911614806126a757506016546001600160a01b038381169116145b801561179b575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b038681169116141561271b57600a54600c546126ff9161185e565b9150612718600a5460085461185e90919063ffffffff16565b90505b600061273c83612736600d54886118b890919063ffffffff16565b90611bca565b905061277d61275c600b54612736600d54896118b890919063ffffffff16565b6013546001600160a01b03166000908152601c60205260409020549061185e565b6013546001600160a01b03166000908152601c60205260409020556009546127d2906127bc906127ae90859061185e565b600d546127369089906118b8565b306000908152601c60205260409020549061185e565b306000908152601c6020526040902055600754600d5461281c916127fb916127369089906118b8565b6010546001600160a01b03166000908152601c60205260409020549061185e565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128719085906118b8565b60408051918252519081900360200190a361288c8582611b82565b97965050505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e745468657265206973206e6f204f50206465706f736974656420696e20746f6b656e20636f6e7472616374a2646970667358221220af3334f923f062ca97b897f1322595b8cf5141be4f694ec61d935d4c2b13d25064736f6c63430007040033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c806370a08231116101d1578063a9059cbb11610102578063d28d8852116100a0578063e15beb801161006f578063e15beb8014610afa578063f2fde38b14610b26578063f887ea4014610b59578063f9f92be414610b6e57610381565b8063d28d885214610a4d578063d439979014610a62578063d51ed1c814610a95578063dd62ed3e14610abf57610381565b8063bd595581116100dc578063bd595581146109e2578063ca33e64c146109f7578063cc32d17614610a0c578063cfbac92f14610a2157610381565b8063a9059cbb1461097f578063afb9cf6d146109b8578063b09f1266146109cd57610381565b806398118cb41161016f578063a22d483211610149578063a22d4832146108e9578063a457c2d71461091c578063a8aa1b3114610955578063a8b089821461096a57610381565b806398118cb4146108aa5780639b2912cc146108bf5780639b87676c146108d457610381565b806383b4ac68116101ab57806383b4ac68146108565780638da5cb5b1461086b5780638f32d59b1461088057806395d89b411461089557610381565b806370a08231146107f9578063715018a61461082c578063753d02a11461084157610381565b8063313ce567116102ab5780633e9931cf116102495780635203d861116102235780635203d861146107a55780635a604c52146107ba5780636912652c146107cf5780636ddd1713146107e457610381565b80633e9931cf146107665780633eaaf86b1461077b5780634d709adf1461079057610381565b806333a581d21161028557806333a581d21461069257806337c9be87146106a757806339509351146106e25780633c8e556d1461071b57610381565b8063313ce5671461063d57806332424aa31461066857806332b756831461067d57610381565b806323b872dd116103185780632b112e49116102f25780632b112e49146105cb5780632b14ca56146105e05780632e0f2625146105f55780632f34d2821461060a57610381565b806323b872dd146104f457806327cb102f146105375780632adddc4e1461054c57610381565b80630b403f60116103545780630b403f601461048e578063180b0d7e146104a357806318160ddd146104ca5780631df4ccfc146104df57610381565b806306fdde031461038657806308b1fd8f14610410578063095ea7b31461044157610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ba1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b50610425610c37565b604080516001600160a01b039092168252519081900360200190f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610c46565b604080519115158252519081900360200190f35b34801561049a57600080fd5b50610425610cad565b3480156104af57600080fd5b506104b8610cbc565b60408051918252519081900360200190f35b3480156104d657600080fd5b506104b8610cc2565b3480156104eb57600080fd5b506104b8610cc8565b34801561050057600080fd5b5061047a6004803603606081101561051757600080fd5b506001600160a01b03813581169160208101359091169060400135610cce565b34801561054357600080fd5b506104b8610da8565b34801561055857600080fd5b506105c96004803603602081101561056f57600080fd5b81019060208101813564010000000081111561058a57600080fd5b82018360208201111561059c57600080fd5b803590602001918460208302840111640100000000831117156105be57600080fd5b509092509050610dae565b005b3480156105d757600080fd5b506104b8610e1a565b3480156105ec57600080fd5b506104b8610e74565b34801561060157600080fd5b506104b8610e7a565b34801561061657600080fd5b506105c96004803603602081101561062d57600080fd5b50356001600160a01b0316610e7f565b34801561064957600080fd5b50610652610eb8565b6040805160ff9092168252519081900360200190f35b34801561067457600080fd5b50610652610ec1565b34801561068957600080fd5b506104b8610eca565b34801561069e57600080fd5b506104b8610ed0565b3480156106b357600080fd5b506105c9600480360360408110156106ca57600080fd5b506001600160a01b0381351690602001351515610ed6565b3480156106ee57600080fd5b5061047a6004803603604081101561070557600080fd5b506001600160a01b038135169060200135610f56565b34801561072757600080fd5b506105c96004803603608081101561073e57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610fe9565b34801561077257600080fd5b5061042561104a565b34801561078757600080fd5b506104b8611059565b34801561079c57600080fd5b5061042561105f565b3480156107b157600080fd5b506104b8611073565b3480156107c657600080fd5b50610652611079565b3480156107db57600080fd5b5061047a61107e565b3480156107f057600080fd5b5061047a61108e565b34801561080557600080fd5b506104b86004803603602081101561081c57600080fd5b50356001600160a01b031661109e565b34801561083857600080fd5b506105c96110c6565b34801561084d57600080fd5b506105c9611126565b34801561086257600080fd5b5061047a611190565b34801561087757600080fd5b506104256111a1565b34801561088c57600080fd5b5061047a6111b5565b3480156108a157600080fd5b5061039b6111cb565b3480156108b657600080fd5b506104b861122b565b3480156108cb57600080fd5b506104b8611231565b3480156108e057600080fd5b506104b8611237565b3480156108f557600080fd5b506105c96004803603602081101561090c57600080fd5b50356001600160a01b031661123d565b34801561092857600080fd5b5061047a6004803603604081101561093f57600080fd5b506001600160a01b038135169060200135611270565b34801561096157600080fd5b50610425611359565b34801561097657600080fd5b50610425611368565b34801561098b57600080fd5b5061047a600480360360408110156109a257600080fd5b506001600160a01b038135169060200135611377565b3480156109c457600080fd5b5061047a6113a3565b3480156109d957600080fd5b5061039b6113b3565b3480156109ee57600080fd5b506105c9611441565b348015610a0357600080fd5b5061042561166e565b348015610a1857600080fd5b506104b861167d565b348015610a2d57600080fd5b506105c960048036036020811015610a4457600080fd5b50351515611683565b348015610a5957600080fd5b5061039b6116d5565b348015610a6e57600080fd5b5061047a60048036036020811015610a8557600080fd5b50356001600160a01b0316611730565b348015610aa157600080fd5b506104b860048036036020811015610ab857600080fd5b503561174e565b348015610acb57600080fd5b506104b860048036036040811015610ae257600080fd5b506001600160a01b03813581169160200135166117a2565b348015610b0657600080fd5b506105c960048036036020811015610b1d57600080fd5b503515156117cd565b348015610b3257600080fd5b506105c960048036036020811015610b4957600080fd5b50356001600160a01b0316611820565b348015610b6557600080fd5b5061042561183a565b348015610b7a57600080fd5b5061047a60048036036020811015610b9157600080fd5b50356001600160a01b0316611849565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b820191906000526020600020905b815481529060010190602001808311610c1057829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6013546001600160a01b031681565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610ce457600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d91576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d6c9185906118fa565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d9c858585611991565b50600195945050505050565b60095481565b610db66111b5565b610dbf57600080fd5b60005b81811015610e1557600160066000858585818110610ddc57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101610dc2565b505050565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610e6f929091610e699190610e63906325878aff1990611b82565b90611b82565b906118b8565b905090565b600a5481565b600581565b610e876111b5565b610e9057600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610ede6111b5565b610ee757600080fd5b610ef082611bc4565b610f2b5760405162461bcd60e51b815260040180806020018281038252603b8152602001806128b9603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610f84908361185e565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610ff16111b5565b610ffa57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b6012546001600160a01b031681565b601a5481565b60055461010090046001600160a01b031681565b600b5481565b600781565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610ca791906118b8565b6110ce6111b5565b6110d757600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561117657600080fd5b505af115801561118a573d6000803e3d6000fd5b50505050565b601654600160a01b900460ff161590565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c2d5780601f10610c0257610100808354040283529160200191610c2d565b60075481565b60195481565b60175481565b6112456111b5565b61124e57600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b03861684529091528120548083106112c457336000908152601d602090815260408083206001600160a01b03881684529091528120556112f3565b6112ce8184611b82565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661138d57600080fd5b611398338585611991565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156114395780601f1061140e57610100808354040283529160200191611439565b820191906000526020600020905b81548152906001019060200180831161141c57829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b17905561145c6111b5565b61146557600080fd5b601b54306000908152601c6020526040812054909161148491906118b8565b9050600081116114c55760405162461bcd60e51b815260040180806020018281038252602a8152602001806128f4602a913960400191505060405180910390fd5b604080516002808252606080830184529260208301908036833701905050905030816000815181106114f357fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561154757600080fd5b505afa15801561155b573d6000803e3d6000fd5b505050506040513d602081101561157157600080fd5b505181518290600190811061158257fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561161c578181015183820152602001611604565b505050509050019650505050505050600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b61168b6111b5565b61169457600080fd5b80156116ba576016805460ff60b01b1916600160b01b83151502179055426019556116d2565b6016805460ff60b01b1916600160b01b831515021790555b50565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156114395780601f1061140e57610100808354040283529160200191611439565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c602052604081205490918291611779916118b8565b905061179b611786610e1a565b610e69611794846002611bca565b8690611bca565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6117d56111b5565b6117de57600080fd5b8015611804576016805460ff60a81b1916600160a81b83151502179055426018556116d2565b60168054821515600160a81b0260ff60a81b1990911617905550565b6118286111b5565b61183157600080fd5b6116d281611c23565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b60008282018381101561179b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061179b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c9d565b600081848411156119895760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194e578181015183820152602001611936565b50505050905090810190601f16801561197b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff161580156119d357506001600160a01b0383166000908152601e602052604090205460ff16155b611a13576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff1615611a3757611a30848484611d02565b905061179b565b611a3f611d94565b15611a4c57611a4c611dfa565b611a54611f9d565b15611a6157611a61611ff0565b611a6961232d565b15611a7657611a76612358565b6000611a8d601b5484611bca90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611ab39082611b82565b6001600160a01b0386166000908152601c6020526040812091909155611ad9868661267b565b611ae35781611aee565b611aee8686846126cf565b6001600160a01b0386166000908152601c6020526040902054909150611b14908261185e565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b659085906118b8565b60408051918252519081900360200190a350600195945050505050565b600061179b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118fa565b3b151590565b600082611bd957506000610ca7565b82820282848281611be657fe5b041461179b5760405162461bcd60e51b81526004018080602001828103825260218152602001806128986021913960400191505060405180910390fd5b6001600160a01b038116611c3657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611cec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561194e578181015183820152602001611936565b506000838581611cf857fe5b0495945050505050565b600080611d1a601b5484611bca90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611d409082611b82565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611d6f908261185e565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611db85750601a5466012795f58d5000115b8015611dcf57506016546001600160a01b03163314155b8015611de55750601654600160a01b900460ff16155b8015610e6f5750506018546103840142101590565b601654600160a01b900460ff1615611e1157611f9b565b6017546018546000914290810391900382611e2e826103846118b8565b90506000611e3d82600f611bca565b90506301e13380841015611e55576109409450611e8d565b6301e133808410611e695760e09450611e8d565b6302d1cd408410611e7d5760149450611e8d565b630d2868808410611e8d57600394505b60005b82811015611ec057611eb562989680610e69611eac828a61185e565b601a5490611bca565b601a55600101611e90565b50601a54611ed4906325878aff19906118b8565b601b55611eef611ee683610384611bca565b6018549061185e565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f4557600080fd5b505af1158015611f59573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611fc35750601654600160a01b900460ff16155b8015611fda57506016546001600160a01b03163314155b8015610e6f5750506019546202a3000142101590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c6020526040812054909161202d91906118b8565b6010546001600160a01b03166000908152601c60205260408082205430835291205491925061205c919061185e565b306000908152601c6020526040808220929092556010546001600160a01b0316815290812081905561208f8260026118b8565b9050600061209d8383611b82565b9050806120ac5750505061231e565b604080516002808252606080830184529260208301908036833701905050905030816000815181106120da57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561212e57600080fd5b505afa158015612142573d6000803e3d6000fd5b505050506040513d602081101561215857600080fd5b505181518290600190811061216957fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156122035781810151838201526020016121eb565b505050509050019650505050505050600060405180830381600087803b15801561222c57600080fd5b505af1158015612240573d6000803e3d6000fd5b5050505060006122598247611b8290919063ffffffff16565b905060008511801561226b5750600081115b15612313576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b1580156122e557600080fd5b505af11580156122f9573d6000803e3d6000fd5b50505050506040513d606081101561231057600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610e6f5750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c6020526040812054909161238a91906118b8565b905080612397575061231e565b6040805160028082526060808301845247939092919060208301908036833701905050905030816000815181106123ca57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561241e57600080fd5b505afa158015612432573d6000803e3d6000fd5b505050506040513d602081101561244857600080fd5b505181518290600190811061245957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156125135781810151838201526020016124fb565b505050509050019650505050505050600060405180830381600087803b15801561253c57600080fd5b505af1158015612550573d6000803e3d6000fd5b5050505060006125698347611b8290919063ffffffff16565b6011546009546008549293506000926001600160a01b03909216916125a091612592919061185e565b600854610e69908690611bca565b60405161753091906000818181858888f193505050503d80600081146125e2576040519150601f19603f3d011682016040523d82523d6000602084013e6125e7565b606091505b50506012546009546008549293506001600160a01b039091169161261d9161260f919061185e565b600954610e69908690611bca565b60405161753091906000818181858888f193505050503d806000811461265f576040519150601f19603f3d011682016040523d82523d6000602084013e612664565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b03848116911614806126a757506016546001600160a01b038381169116145b801561179b575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b038681169116141561271b57600a54600c546126ff9161185e565b9150612718600a5460085461185e90919063ffffffff16565b90505b600061273c83612736600d54886118b890919063ffffffff16565b90611bca565b905061277d61275c600b54612736600d54896118b890919063ffffffff16565b6013546001600160a01b03166000908152601c60205260409020549061185e565b6013546001600160a01b03166000908152601c60205260409020556009546127d2906127bc906127ae90859061185e565b600d546127369089906118b8565b306000908152601c60205260409020549061185e565b306000908152601c6020526040902055600754600d5461281c916127fb916127369089906118b8565b6010546001600160a01b03166000908152601c60205260409020549061185e565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128719085906118b8565b60408051918252519081900360200190a361288c8582611b82565b97965050505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e745468657265206973206e6f204f50206465706f736974656420696e20746f6b656e20636f6e7472616374a2646970667358221220af3334f923f062ca97b897f1322595b8cf5141be4f694ec61d935d4c2b13d25064736f6c63430007040033
Deployed ByteCode Sourcemap
12252:16414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11976:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13549:31;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13549:31:0;;;;;;;;;;;;;;25991:253;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25991:253:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;13632:26;;;;;;;;;;;;;:::i;13331:36::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;28202:102;;;;;;;;;;;;;:::i;13192:132::-;;;;;;;;;;;;;:::i;17209:465::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17209:465:0;;;;;;;;;;;;;;;;;:::i;13072:38::-;;;;;;;;;;;;;:::i;27494:212::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27494:212:0;;-1:-1:-1;27494:212:0;-1:-1:-1;27494:212:0;:::i;:::-;;26373:215;;;;;;;;;;;;;:::i;13117:27::-;;;;;;;;;;;;;:::i;12753:36::-;;;;;;;;;;;;;:::i;28078:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28078:112:0;-1:-1:-1;;;;;28078:112:0;;:::i;12162:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12527:26;;;;;;;;;;;;;:::i;14214:31::-;;;;;;;;;;;;;:::i;12796:49::-;;;;;;;;;;;;;:::i;27714:236::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27714:236:0;;;;;;;;;;:::i;25577:406::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25577:406:0;;;;;;;;:::i;26776:412::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26776:412:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;13587:38::-;;;;;;;;;;;;;:::i;14295:27::-;;;;;;;;;;;;;:::i;12562:36::-;;;;;;;;;;;;;:::i;13151:34::-;;;;;;;;;;;;;:::i;12852:39::-;;;;;;;;;;;;;:::i;14136:29::-;;;;;;;;;;;;;:::i;13698:30::-;;;;;;;;;;;;;:::i;28315:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28315:138:0;-1:-1:-1;;;;;28315:138:0;;:::i;11187:126::-;;;;;;;;;;;;;:::i;26689:79::-;;;;;;;;;;;;;:::i;26596:85::-;;;;;;;;;;;;;:::i;10922:79::-;;;;;;;;;;;;;:::i;11087:92::-;;;;;;;;;;;;;:::i;12067:87::-;;;;;;;;;;;;;:::i;12996:32::-;;;;;;;;;;;;;:::i;14252:36::-;;;;;;;;;;;;;:::i;14172:35::-;;;;;;;;;;;;;:::i;27962:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27962:108:0;-1:-1:-1;;;;;27962:108:0;;:::i;24973:596::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24973:596:0;;;;;;;;:::i;13774:19::-;;;;;;;;;;;;;:::i;13665:26::-;;;;;;;;;;;;;:::i;16986:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16986:215:0;;;;;;;;:::i;14106:23::-;;;;;;;;;;;;;:::i;12491:29::-;;;;;;;;;;;;;:::i;22804:557::-;;;;;;;;;;;;;:::i;13506:36::-;;;;;;;;;;;;;:::i;13035:30::-;;;;;;;;;;;;;:::i;24511:252::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24511:252:0;;;;:::i;12447:37::-;;;;;;;;;;;;;:::i;26252:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26252:113:0;-1:-1:-1;;;;;26252:113:0;;:::i;27196:291::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27196:291:0;;:::i;24771:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24771:194:0;;;;;;;;;;:::i;24273:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24273:230:0;;;;:::i;11321:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11321:109:0;-1:-1:-1;;;;;11321:109:0;;:::i;13735:32::-;;;;;;;;;;;;;:::i;14507:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14507:41:0;-1:-1:-1;;;;;14507:41:0;;:::i;11976:83::-;12046:5;12039:12;;;;;;;;-1:-1:-1;;12039:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12013:13;;12039:12;;12046:5;;12039:12;;12046:5;12039:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11976:83;:::o;13549:31::-;;;-1:-1:-1;;;;;13549:31:0;;:::o;25991:253::-;26134:10;26094:4;26116:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26116:38:0;;;;;;;;;;;:46;;;26178:36;;;;;;;26094:4;;26116:38;;26134:10;;26178:36;;;;;;;;-1:-1:-1;26232:4:0;25991:253;;;;;:::o;13632:26::-;;;-1:-1:-1;;;;;13632:26:0;;:::o;13331:36::-;;;;:::o;28202:102::-;28284:12;;28202:102;:::o;13192:132::-;;;;:::o;17209:465::-;17352:4;17339:2;-1:-1:-1;;;;;12706:18:0;;12698:27;;;;;;-1:-1:-1;;;;;17383:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;17407:10:::1;17383:35:::0;;;;;;;;-1:-1:-1;;17383:50:0::1;17379:225;;17488:104;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;17488:104:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;17488:23:0;::::1;-1:-1:-1::0;17488:23:0;;;:17:::1;:23:::0;;;;;17530:10:::1;17488:67:::0;;;;;;;;;;:104:::1;::::0;17560:5;;17488:71:::1;:104::i;:::-;-1:-1:-1::0;;;;;17450:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;17474:10:::1;17450:35:::0;;;;;;;:142;17379:225:::1;17614:30;17628:4;17634:2;17638:5;17614:13;:30::i;:::-;-1:-1:-1::0;17662:4:0::1;::::0;17209:465;-1:-1:-1;;;;;17209:465:0:o;13072:38::-;;;;:::o;27494:212::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;27590:9:::1;27586:104;27601:15:::0;;::::1;27586:104;;;27668:4;27643:12;:22;27656:5;;27662:1;27656:8;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;27656:8:0::1;27643:22:::0;;-1:-1:-1;27643:22:0;::::1;::::0;;;;;;-1:-1:-1;27643:22:0;:29;;-1:-1:-1;;27643:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;27617:3:0::1;27586:104;;;;27494:212:::0;;:::o;26373:215::-;26549:16;;26519:4;;-1:-1:-1;;;;;26519:4:0;;;26426:7;26506:18;;;:12;:18;;;;;;;26495:4;;;;;26482:18;;;;;26426:7;;26466:114;;26549:16;;26467:58;;26506:18;26467:34;;-1:-1:-1;;13970:54:0;26467:14;:34::i;:::-;:38;;:58::i;:::-;26466:64;;:114::i;:::-;26446:134;;26373:215;:::o;13117:27::-;;;;:::o;12753:36::-;12788:1;12753:36;:::o;28078:112::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;28141:12:::1;:41:::0;;-1:-1:-1;;;;;28141:41:0;;::::1;;;-1:-1:-1::0;;;;;;28141:41:0;;::::1;::::0;;;::::1;::::0;;28078:112::o;12162:83::-;12228:9;;;;12162:83;:::o;12527:26::-;;;;;;:::o;14214:31::-;;;;:::o;12796:49::-;-1:-1:-1;;12796:49:0;:::o;27714:236::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;27810:23:::1;27821:11;27810:10;:23::i;:::-;27802:95;;;;-1:-1:-1::0;;;27802:95:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;27908:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;27908:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27714:236::o;25577:406::-;25758:10;25677:4;25740:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25740:62:0;;;;;;;;;;:78;;25807:10;25740:66;:78::i;:::-;25717:10;25699:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25699:38:0;;;;;;;;;;;;:119;;;25834;;;;;;25699:38;;25834:119;;;;;;;;;;;-1:-1:-1;25971:4:0;25577:406;;;;:::o;26776:412::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;26989:21:::1;:46:::0;;-1:-1:-1;;;;;26989:46:0;;::::1;-1:-1:-1::0;;;;;;26989:46:0;;::::1;;::::0;;;27046:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;27093:23:::1;:50:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;27154:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;26776:412::o;13587:38::-;;;-1:-1:-1;;;;;13587:38:0;;:::o;14295:27::-;;;;:::o;12562:36::-;;;;;;-1:-1:-1;;;;;12562:36:0;;:::o;13151:34::-;;;;:::o;12852:39::-;12890:1;12852:39;:::o;14136:29::-;;;-1:-1:-1;;;14136:29:0;;;;;:::o;13698:30::-;;;-1:-1:-1;;;13698:30:0;;;;;:::o;28315:138::-;28428:16;;-1:-1:-1;;;;;28406:17:0;;28379:7;28406:17;;;:12;:17;;;;;;28379:7;;28406:39;;:17;:21;:39::i;11187:126::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;11268:6:::1;::::0;11249:26:::1;::::0;11268:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;11268:6:0::1;::::0;11249:26:::1;::::0;;;::::1;11286:6;:19:::0;;-1:-1:-1;;;;;;11286:19:0::1;::::0;;11187:126::o;26689:79::-;26748:4;;;;;;;;;-1:-1:-1;;;;;26748:4:0;-1:-1:-1;;;;;26731:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26689:79::o;26596:85::-;26667:6;;-1:-1:-1;;;26667:6:0;;;;26666:7;;26596:85::o;10922:79::-;10987:6;;;;;-1:-1:-1;;;;;10987:6:0;;10922:79::o;11087:92::-;11165:6;;;;;-1:-1:-1;;;;;11165:6:0;11151:10;:20;;11087:92::o;12067:87::-;12139:7;12132:14;;;;;;;;-1:-1:-1;;12132:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12106:13;;12132:14;;12139:7;;12132:14;;12139:7;12132:14;;;;;;;;;;;;;;;;;;;;;;;;12996:32;;;;:::o;14252:36::-;;;;:::o;14172:35::-;;;;:::o;27962:108::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;28036:11:::1;:26:::0;;-1:-1:-1;;;;;;28036:26:0::1;-1:-1:-1::0;;;;;28036:26:0;;;::::1;::::0;;;::::1;::::0;;27962:108::o;24973:596::-;25137:10;25078:4;25119:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25119:38:0;;;;;;;;;;25172:27;;;25168:237;;25234:10;25257:1;25216:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25216:38:0;;;;;;;;;:42;25168:237;;;25332:61;:8;25363:15;25332:12;:61::i;:::-;25309:10;25291:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25291:38:0;;;;;;;;;:102;25168:237;25443:10;25490:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;25420:119:0;;25490:38;;;;;;;;;;;25420:119;;;;;;;;;25443:10;25420:119;;;;;;;;;;;-1:-1:-1;25557:4:0;;24973:596;-1:-1:-1;;;24973:596:0:o;13774:19::-;;;-1:-1:-1;;;;;13774:19:0;;:::o;13665:26::-;;;-1:-1:-1;;;;;13665:26:0;;:::o;16986:215::-;17113:4;17091:2;-1:-1:-1;;;;;12706:18:0;;12698:27;;;;;;17135:36:::1;17149:10;17161:2;17165:5;17135:13;:36::i;:::-;-1:-1:-1::0;17189:4:0::1;::::0;16986:215;-1:-1:-1;;;;16986:215:0:o;14106:23::-;;;-1:-1:-1;;;14106:23:0;;;;;:::o;12491:29::-;;;;;;;;;;;;;;;-1:-1:-1;;12491:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22804:557::-;13857:6;:13;;-1:-1:-1;;;;13857:13:0;-1:-1:-1;;;13857:13:0;;;11049:9:::1;:7;:9::i;:::-;11041:18;;;::::0;::::1;;22933:16:::2;::::0;22922:4:::2;22878:20;22901:27:::0;;;:12:::2;:27;::::0;;;;;22878:20;;22901:49:::2;::::0;:27;:31:::2;:49::i;:::-;22878:72;;22985:1;22970:12;:16;22961:71;;;;-1:-1:-1::0;;;22961:71:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23067:16;::::0;;23081:1:::2;23067:16:::0;;;23043:21:::2;23067:16:::0;;::::2;::::0;;23043:21;23067:16:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;23067:16:0::2;23043:40;;23112:4;23094;23099:1;23094:7;;;;;;;;-1:-1:-1::0;;;;;23094:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;23138:6:::2;::::0;:13:::2;::::0;;-1:-1:-1;;;23138:13:0;;;;:6;;;::::2;::::0;:11:::2;::::0;:13:::2;::::0;;::::2;::::0;23094:7;;23138:13;;;;;:6;:13;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;23138:13:0;23128:7;;:4;;23133:1:::2;::::0;23128:7;::::2;;;;;-1:-1:-1::0;;;;;23128:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;23162:6:::2;::::0;23296:16:::2;::::0;23162:191:::2;::::0;-1:-1:-1;;;23162:191:0;;::::2;::::0;::::2;::::0;;;:6:::2;:191:::0;;;;;;23296:16;;::::2;23162:191:::0;;;;;;23327:15:::2;23162:191:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::2;::::0;:57:::2;::::0;23234:12;;23277:4;;23296:16;;23327:15;;23162:191;;;;;::::2;::::0;::::2;::::0;;;:6;:191:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;13893:6:0;:14;;-1:-1:-1;;;;13893:14:0;;;-1:-1:-1;;;;22804:557:0:o;13506:36::-;;;-1:-1:-1;;;;;13506:36:0;;:::o;13035:30::-;;;;:::o;24511:252::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;24585:5:::1;24582:174;;;24607:17;:25:::0;;-1:-1:-1;;;;24607:25:0::1;-1:-1:-1::0;;;24607:25:0;::::1;;;;::::0;;24671:15:::1;24647:21;:39:::0;24582:174:::1;;;24719:17;:25:::0;;-1:-1:-1;;;;24719:25:0::1;-1:-1:-1::0;;;24719:25:0;::::1;;;;::::0;;24582:174:::1;24511:252:::0;:::o;12447:37::-;;;;;;;;;;;;;;;-1:-1:-1;;12447:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26252:113;-1:-1:-1;;;;;26338:19:0;26314:4;26338:19;;;:12;:19;;;;;;;;;26252:113::o;27196:291::-;27366:16;;27356:4;;-1:-1:-1;;;;;27356:4:0;27291:7;27343:18;;;:12;:18;;;;;;27291:7;;;;27343:40;;:22;:40::i;:::-;27316:67;;27414:65;27456:22;:20;:22::i;:::-;27414:37;27427:23;:16;27448:1;27427:20;:23::i;:::-;27414:8;;:12;:37::i;:65::-;27394:85;27196:291;-1:-1:-1;;;27196:291:0:o;24771:194::-;-1:-1:-1;;;;;24923:25:0;;;24891:7;24923:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;24771:194::o;24273:230::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;24342:5:::1;24338:158;;;24364:11;:19:::0;;-1:-1:-1;;;;24364:19:0::1;-1:-1:-1::0;;;24364:19:0;::::1;;;;::::0;;24417:15:::1;24398:16;:34:::0;24338:158:::1;;;24465:11;:19:::0;;;::::1;;-1:-1:-1::0;;;24465:19:0::1;-1:-1:-1::0;;;;24465:19:0;;::::1;;::::0;;24273:230;:::o;11321:109::-;11049:9;:7;:9::i;:::-;11041:18;;;;;;11394:28:::1;11413:8;11394:18;:28::i;13735:32::-:0;;;-1:-1:-1;;;;;13735:32:0;;:::o;14507:41::-;;;;;;;;;;;;;;;:::o;1193:181::-;1251:7;1283:5;;;1307:6;;;;1299:46;;;;;-1:-1:-1;;;1299:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2018:132;2076:7;2103:39;2107:1;2110;2103:39;;;;;;;;;;;;;;;;;:3;:39::i;1526:226::-;1646:7;1682:12;1674:6;;;;1666:29;;;;-1:-1:-1;;;1666:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1718:5:0;;;1526:226::o;18029:1088::-;-1:-1:-1;;;;;18183:17:0;;18155:4;18183:17;;;:9;:17;;;;;;;;18182:18;:43;;;;-1:-1:-1;;;;;;18205:20:0;;;;;;:9;:20;;;;;;;;18204:21;18182:43;18174:68;;;;;-1:-1:-1;;;18174:68:0;;;;;;;;;;;;-1:-1:-1;;;18174:68:0;;;;;;;;;;;;;;;18267:6;;-1:-1:-1;;;18267:6:0;;;;18263:87;;;18297:41;18312:6;18320:9;18331:6;18297:14;:41::i;:::-;18290:48;;;;18263:87;18364:14;:12;:14::i;:::-;18360:54;;;18394:8;:6;:8::i;:::-;18430:20;:18;:20::i;:::-;18426:67;;;18467:14;:12;:14::i;:::-;18509:16;:14;:16::i;:::-;18505:59;;;18542:10;:8;:10::i;:::-;18576:17;18596:28;18607:16;;18596:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;18658:20:0;;;;;;:12;:20;;;;;;18576:48;;-1:-1:-1;18658:35:0;;18576:48;18658:24;:35::i;:::-;-1:-1:-1;;;;;18635:20:0;;;;;;:12;:20;;;;;:58;;;;18732:32;18648:6;18754:9;18732:13;:32::i;:::-;:110;;18833:9;18732:110;;;18780:37;18788:6;18796:9;18807;18780:7;:37::i;:::-;-1:-1:-1;;;;;18879:23:0;;;;;;:12;:23;;;;;;18704:138;;-1:-1:-1;18879:70:0;;18704:138;18879:27;:70::i;:::-;-1:-1:-1;;;;;18853:23:0;;;;;;;:12;:23;;;;;:96;;;;19059:16;;18969:118;;;;;;19037:39;;:17;;:21;:39::i;:::-;18969:118;;;;;;;;;;;;;;;-1:-1:-1;19105:4:0;;18029:1088;-1:-1:-1;;;;;18029:1088:0:o;1382:136::-;1440:7;1467:43;1471:1;1474;1467:43;;;;;;;;;;;;;;;;;:3;:43::i;28461:165::-;28574:17;28610:8;;;28461:165::o;1760:250::-;1818:7;1842:6;1838:47;;-1:-1:-1;1872:1:0;1865:8;;1838:47;1909:5;;;1913:1;1909;:5;:1;1933:5;;;;;:10;1925:56;;;;-1:-1:-1;;;1925:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11438:187;-1:-1:-1;;;;;11512:22:0;;11504:31;;;;;;11572:6;;11551:38;;-1:-1:-1;;;;;11551:38:0;;;;11572:6;;;;;11551:38;;;;;11600:6;:17;;-1:-1:-1;;;;;11600:17:0;;;;;-1:-1:-1;;;;;;11600:17:0;;;;;;;;;11438:187::o;2158:225::-;2278:7;2313:12;2306:5;2298:28;;;;-1:-1:-1;;;2298:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2337:9;2353:1;2349;:5;;;;;;;2158:225;-1:-1:-1;;;;;2158:225:0:o;17682:339::-;17800:4;17817:17;17837:28;17848:16;;17837:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;17897:18:0;;;;;;:12;:18;;;;;;17817:48;;-1:-1:-1;17897:33:0;;17817:48;17897:22;:33::i;:::-;-1:-1:-1;;;;;17876:18:0;;;;;;;:12;:18;;;;;;:54;;;;17960:16;;;;;;;:31;;17981:9;17960:20;:31::i;:::-;-1:-1:-1;;;;;17941:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;18009:4:0;;-1:-1:-1;17682:339:0;;;;;:::o;23591:274::-;23675:11;;23638:4;;-1:-1:-1;;;23675:11:0;;;;:55;;;;-1:-1:-1;23704:12:0;;14071:26;-1:-1:-1;23675:55:0;:90;;;;-1:-1:-1;23761:4:0;;-1:-1:-1;;;;;23761:4:0;23747:10;:18;;23675:90;:115;;;;-1:-1:-1;23784:6:0;;-1:-1:-1;;;23784:6:0;;;;23783:7;23675:115;:182;;;;-1:-1:-1;;23827:16:0;;23846:10;23827:29;23807:15;:50;;;23591:274::o;15861:1117::-;15914:6;;-1:-1:-1;;;15914:6:0;;;;15909:21;;;15923:7;;15909:21;16015:20;;16084:16;;15940:18;;15997:15;:38;;;;16066:34;;15940:18;16127:25;16066:34;16141:10;16127:13;:25::i;:::-;16111:41;-1:-1:-1;16163:13:0;16179;16111:41;16189:2;16179:9;:13::i;:::-;16163:29;;16230:8;16209:17;:30;16205:351;;;16269:4;16256:17;;16205:351;;;16317:8;16295:17;:31;16291:265;;16356:3;16343:16;;16291:265;;;16403:20;16381:17;:43;16377:179;;16454:2;16441:15;;16377:179;;;16500:12;16478:17;:35;16474:82;;16543:1;16530:14;;16474:82;16573:9;16568:190;16592:5;16588:1;:9;16568:190;;;16634:112;16728:17;16634:71;16669:35;16728:17;16693:10;16669:23;:35::i;:::-;16634:12;;;:34;:71::i;:112::-;16619:12;:127;16599:3;;16568:190;;;-1:-1:-1;16804:12:0;;16789:28;;-1:-1:-1;;13970:54:0;16789:14;:28::i;:::-;16770:16;:47;16847:43;16868:21;:5;16878:10;16868:9;:21::i;:::-;16847:16;;;:20;:43::i;:::-;16828:16;:62;;;;16903:12;;;;;;;;;-1:-1:-1;;;;;16903:12:0;-1:-1:-1;;;;;16903:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16957:12:0;;16940:30;;;;;;;16950:5;;-1:-1:-1;16940:30:0;;-1:-1:-1;16940:30:0;;;;;;;;15861:1117;;;;;;:::o;23873:244::-;23963:17;;23926:4;;-1:-1:-1;;;23963:17:0;;;;:42;;;;-1:-1:-1;23999:6:0;;-1:-1:-1;;;23999:6:0;;;;23998:7;23963:42;:78;;;;-1:-1:-1;24037:4:0;;-1:-1:-1;;;;;24037:4:0;24023:10;:18;;23963:78;:146;;;;-1:-1:-1;;24078:21:0;;24102:6;24078:30;24058:15;:51;;;23873:244::o;20198:1405::-;13857:6;:13;;-1:-1:-1;;;;13857:13:0;-1:-1:-1;;;13857:13:0;;;20335:16:::1;::::0;20294:21:::1;::::0;-1:-1:-1;;;;;20294:21:0::1;13857:13:::0;20281:35;;;:12:::1;:35;::::0;;;;;13857:13;;20281:81:::1;::::0;:35;:39:::1;:81::i;:::-;20462:21;::::0;-1:-1:-1;;;;;20462:21:0::1;20449:35;::::0;;;:12:::1;:35;::::0;;;;;;20424:4:::1;20403:27:::0;;;;;20251:111;;-1:-1:-1;20403:92:0::1;::::0;:27;:31:::1;:92::i;:::-;20394:4;20373:27;::::0;;;:12:::1;:27;::::0;;;;;:122;;;;20519:21:::1;::::0;-1:-1:-1;;;;;20519:21:0::1;20506:35:::0;;;;;:39;;;20582:26:::1;:19:::0;20606:1:::1;20582:23;:26::i;:::-;20556:52:::0;-1:-1:-1;20619:20:0::1;20642:40;:19:::0;20556:52;20642:23:::1;:40::i;:::-;20619:63:::0;-1:-1:-1;20699:17:0;20695:57:::1;;20734:7;;;;;20695:57;20786:16;::::0;;20800:1:::1;20786:16:::0;;;20762:21:::1;20786:16:::0;;::::1;::::0;;20762:21;20786:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20786:16:0::1;20762:40;;20831:4;20813;20818:1;20813:7;;;;;;;;-1:-1:-1::0;;;;;20813:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;20857:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;20857:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;20813:7;;20857:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;20857:13:0;20847:7;;:4;;20852:1:::1;::::0;20847:7;::::1;;;;;-1:-1:-1::0;;;;;20847:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;20943:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;20943:188:0;;::::1;::::0;::::1;::::0;;;20883:21:::1;20943:188:::0;;;;;;21085:4:::1;20943:188:::0;;;;;;21105:15:::1;20943:188:::0;;;;;;;;;;;;;;;;;;;;;20907:21:::1;::::0;20943:6;;;::::1;::::0;:57:::1;::::0;21015:12;;20883:21;;21058:4;;20943:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;20883:21;20943:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21144:26;21173:40;21199:13;21173:21;:25;;:40;;;;:::i;:::-;21144:69;;21248:1;21230:15;:19;:43;;;;;21272:1;21251:18;:22;21230:43;21226:320;;;21290:6;::::0;21464:21:::1;::::0;21290:244:::1;::::0;;-1:-1:-1;;;21290:244:0;;21366:4:::1;21290:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;21464:21:0;;::::1;21290:244:::0;;;;21504:15:::1;21290:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;21320:18;;21290:244;;;;;::::1;::::0;;;;;;;;;21320:18;21290:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;21226:320:0::1;-1:-1:-1::0;;21580:15:0::1;21556:21;:39:::0;-1:-1:-1;;;;13881:1:0::1;13893:6:::0;:14;;-1:-1:-1;;;;13893:14:0;;;20198:1405::o;24125:140::-;24213:6;;24174:4;;-1:-1:-1;;;24213:6:0;;;;24212:7;:42;;;;-1:-1:-1;;24250:4:0;;-1:-1:-1;;;;;24250:4:0;24236:10;:18;;;24125:140::o;21611:1185::-;13857:6;:13;;-1:-1:-1;;;;13857:13:0;-1:-1:-1;;;13857:13:0;;;21717:16:::1;::::0;21706:4:::1;13857:13:::0;21685:27;;;:12:::1;:27;::::0;;;;;13857:13;;21685:49:::1;::::0;:27;:31:::1;:49::i;:::-;21662:72:::0;-1:-1:-1;21751:17:0;21747:56:::1;;21785:7;;;21747:56;21895:16;::::0;;21909:1:::1;21895:16:::0;;;21871:21:::1;21895:16:::0;;::::1;::::0;;21839:21:::1;::::0;21871;;21895:16;21909:1;21895:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21895:16:0::1;21871:40;;21940:4;21922;21927:1;21922:7;;;;;;;;-1:-1:-1::0;;;;;21922:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21966:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;21966:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;21922:7;;21966:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;21966:13:0;21956:7;;:4;;21961:1:::1;::::0;21956:7;::::1;;;;;;;;;;:23;-1:-1:-1::0;;;;;21956:23:0::1;;;-1:-1:-1::0;;;;;21956:23:0::1;;;::::0;::::1;22002:6;;;;;;;;;-1:-1:-1::0;;;;;22002:6:0::1;-1:-1:-1::0;;;;;22002:57:0::1;;22074:12;22101:1;22117:4;22144;22164:15;22002:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22002:188:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22203:33;22239:64;22279:13;22239:21;:25;;:64;;;;:::i;:::-;22343:16;::::0;22468:18:::1;::::0;22452:11:::1;::::0;22203:100;;-1:-1:-1;22317:12:0::1;::::0;-1:-1:-1;;;;;22343:16:0;;::::1;::::0;22387:115:::1;::::0;22452:35:::1;::::0;:11;:15:::1;:35::i;:::-;22417:11;::::0;22387:42:::1;::::0;:25;;:29:::1;:42::i;:115::-;22335:207;::::0;22522:5:::1;::::0;22335:207;::::1;::::0;;;;;22522:5;22335:207:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22575:23:0::1;::::0;22714:18:::1;::::0;22698:11:::1;::::0;22316:226;;-1:-1:-1;;;;;;22575:23:0;;::::1;::::0;22626:122:::1;::::0;22698:35:::1;::::0;:11;:15:::1;:35::i;:::-;22656:18;::::0;22626:49:::1;::::0;:25;;:29:::1;:49::i;:122::-;22567:221;::::0;22768:5:::1;::::0;22567:221;::::1;::::0;;;;;22768:5;22567:221:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;13893:6:0;:14;;-1:-1:-1;;;;13893:14:0;;;21611:1185::o;23369:214::-;23512:4;;23468;;-1:-1:-1;;;;;23512:12:0;;;:4;;:12;;:26;;-1:-1:-1;23528:4:0;;-1:-1:-1;;;;;23528:10:0;;;:4;;:10;23512:26;23511:64;;;;-1:-1:-1;;;;;;;;23557:18:0;;;;;:12;:18;;;;;;;;23556:19;;23369:214::o;19125:1065::-;19289:8;;19331:11;;19372:4;;19249:7;;19289:8;19331:11;-1:-1:-1;;;;;19359:17:0;;;19372:4;;19359:17;19355:137;;;19418:7;;19405:8;;:21;;:12;:21::i;:::-;19393:33;;19456:24;19472:7;;19456:11;;:15;;:24;;;;:::i;:::-;19441:39;;19355:137;19504:17;19524:44;19558:9;19524:29;19538:14;;19524:9;:13;;:29;;;;:::i;:::-;:33;;:44::i;:::-;19504:64;;19616:104;19660:49;19694:14;;19660:29;19674:14;;19660:9;:13;;:29;;;;:::i;:49::-;19629:11;;-1:-1:-1;;;;;19629:11:0;19616:25;;;;:12;:25;;;;;;;:29;:104::i;:::-;19601:11;;-1:-1:-1;;;;;19601:11:0;19588:25;;;;:12;:25;;;;;:132;19858:18;;19761:128;;19807:71;;19841:36;;:12;;:16;:36::i;:::-;19821:14;;19807:29;;:9;;:13;:29::i;:71::-;19782:4;19761:27;;;;:12;:27;;;;;;;:31;:128::i;:::-;19752:4;19731:27;;;;:12;:27;;;;;:158;20026:12;;20006:14;;19938:112;;19992:47;;:29;;:9;;:13;:29::i;:47::-;19951:21;;-1:-1:-1;;;;;19951:21:0;19938:35;;;;:12;:35;;;;;;;:39;:112::i;:::-;19913:21;;-1:-1:-1;;;;;19913:21:0;;;19900:35;;;;:12;:35;;;;;:150;;;;20122:16;;20101:4;;20076:64;;;;;20108:31;;:9;;:13;:31::i;:::-;20076:64;;;;;;;;;;;;;;;20158:24;:9;20172;20158:13;:24::i;:::-;20151:31;19125:1065;-1:-1:-1;;;;;;;19125:1065:0:o
Swarm Source
ipfs://af3334f923f062ca97b897f1322595b8cf5141be4f694ec61d935d4c2b13d250