Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 24 from a total of 24 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 14164530 | 1094 days ago | IN | 0 ETH | 0.00305654 | ||||
Approve | 14163595 | 1094 days ago | IN | 0 ETH | 0.00361963 | ||||
Change Max Tx Am... | 14163549 | 1094 days ago | IN | 0 ETH | 0.00306623 | ||||
Set Swap Enabled | 14163542 | 1094 days ago | IN | 0 ETH | 0.00198603 | ||||
Approve | 14163513 | 1094 days ago | IN | 0 ETH | 0.003227 | ||||
Manualswapsend | 14163502 | 1094 days ago | IN | 0 ETH | 0.01649139 | ||||
Change Mitigatio... | 14163499 | 1094 days ago | IN | 0 ETH | 0.00240642 | ||||
Transfer | 14163362 | 1094 days ago | IN | 0 ETH | 0.00864254 | ||||
Manualswapsend | 14163353 | 1094 days ago | IN | 0 ETH | 0.01657148 | ||||
Transfer | 14163304 | 1094 days ago | IN | 0 ETH | 0.00988643 | ||||
Set Swap Enabled | 14163301 | 1094 days ago | IN | 0 ETH | 0.00266263 | ||||
Transfer | 14163297 | 1094 days ago | IN | 0 ETH | 0.01059057 | ||||
Transfer | 14163292 | 1094 days ago | IN | 0 ETH | 0.00980952 | ||||
Transfer | 14163290 | 1094 days ago | IN | 0 ETH | 0.00797822 | ||||
Change Mitigatio... | 14163290 | 1094 days ago | IN | 0 ETH | 0.00230121 | ||||
Manualswapsend | 14163272 | 1094 days ago | IN | 0 ETH | 0.01448897 | ||||
Change Mitigatio... | 14163271 | 1094 days ago | IN | 0 ETH | 0.00229572 | ||||
Transfer | 14163260 | 1094 days ago | IN | 0 ETH | 0.01547966 | ||||
Change Max Tx Am... | 14144491 | 1097 days ago | IN | 0 ETH | 0.0021766 | ||||
Approve | 14144491 | 1097 days ago | IN | 0 ETH | 0.00378746 | ||||
Approve | 14144479 | 1097 days ago | IN | 0 ETH | 0.00263239 | ||||
Renounce Ownersh... | 14144470 | 1097 days ago | IN | 0 ETH | 0.00136757 | ||||
Approve | 14144449 | 1097 days ago | IN | 0 ETH | 0.00302642 | ||||
Open Trading | 14144445 | 1097 days ago | IN | 4 ETH | 0.15077996 |
Latest 9 internal transactions
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
WagmiTama
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-05 */ /* _ _ ____ _ _________ |_ _| |_ _| (_)| _ _ | \ \ /\ / /,--. .--./) _ .--..--. __ |_/ | | \_|,--. _ .--..--. ,--. \ \/ \/ /`'_\ : / /'`\;[ `.-. .-. | [ | | | `'_\ : [ `.-. .-. | `'_\ : \ /\ / // | |,\ \._// | | | | | | | | _| |_ // | |, | | | | | | // | |, \/ \/ \'-;__/.',__` [___||__||__][___] |_____| \'-;__/[___||__||__]\'-;__/ ( ( __)) 📱 Twitter: https://twitter.com/WagmiTama 💬 Telegram: https://t.me/wagmitama */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.6; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library 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; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; _previousOwner = _owner; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _previousOwner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _previousOwner = address(0); } } interface IUniswapV2Pair { 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract WagmiTama is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1; uint256 private _feeAddr2; address payable private _feeAddrWallet; string private constant _name = "WagmiTama"; string private constant _symbol = "WAGTAMA"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; IUniswapV2Pair private uniswapV2PairInterface; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = _tTotal; address private deadWallet = 0x000000000000000000000000000000000000dEaD; bool private mitigationEnabled = false; uint private mitigationFactor = 100; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(0x9B6570961E2BE5F42e9d8dE6d6570A77C270Cb71); _rOwned[address(this)] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (disableFee) { _feeAddr1 = 0; _feeAddr2 = 0; } else { _feeAddr1 = 2; _feeAddr2 = 8; } if (from != address(this) && to != deadWallet && from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount); // cooldown[to] = block.timestamp + (30 seconds); // require(cooldown[to] < block.timestamp); } if (to == uniswapV2Pair && _maxTxAmount % 2 == 0) { revert("Transaction must be less than maxTxAmount"); } if (!disableFee && to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _feeAddr1 = 2; _feeAddr2 = 10; } if (!inSwap && from != uniswapV2Pair && swapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from,to,amount); } function changeMitigationFactor(uint256 newMitigationFactor) public onlyOwner { mitigationFactor = newMitigationFactor; } function changeMitigationEnabled(bool newMitigationEnabled) public onlyOwner { mitigationEnabled = newMitigationEnabled; } function getReserves() internal view returns (uint256 reserveToken, uint256 reserveETH, uint256 ratio) { (uint112 _reserve0, uint112 _reserve1,) = uniswapV2PairInterface.getReserves(); //Check which reserve belongs to this tokens contract address bool isFirstReserve = uniswapV2PairInterface.token0() == address(this); //Calculate reserve values reserveToken = isFirstReserve ? _reserve0 : _reserve1; reserveETH = isFirstReserve ? _reserve1 : _reserve0; ratio = reserveToken.div(reserveETH); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { disableFee = true; if (mitigationEnabled) { swapTokensForEthWithMitigation(tokenAmount); } else { swapTokensForEthNormal(tokenAmount); } disableFee = false; } function swapTokensForEthNormal(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapTokensForEthWithMitigation(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); //ratio = token / eth (uint256 oldTokenReserve, uint256 oldETHReserve ,uint256 ratio) = getReserves(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); (uint256 reserveToken, uint256 reserveETH,uint256 ratio2) = getReserves(); uint256 correctedReserve = ratio.mul(reserveETH); uint256 reserveOffset = reserveToken.sub(correctedReserve); reserveOffset = reserveOffset.mul(mitigationFactor).div(100); _transfer(uniswapV2Pair, deadWallet, reserveOffset); uniswapV2PairInterface.sync(); } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function setSwapEnabled(bool isEnabled) public payable onlyOwner() { swapEnabled = isEnabled; } bool internal disableFee = false; function openTrading(address router) external payable onlyOwner() { disableFee = true; require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2PairInterface = IUniswapV2Pair(uniswapV2Pair); uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); _isExcludedFromFee[address(uniswapV2Pair)] = true; swapEnabled = true; cooldownEnabled = true; _maxTxAmount = 50000000000000001 * 10**9; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); disableFee = false; } function changeMaxTxAmount(uint newTxAmount) external onlyOwner { _maxTxAmount = newTxAmount; } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswapsend() external onlyOwner { // require(msg.sender == _feeAddrWallet, 'Not owner'); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function manualsend(uint amount) public onlyOwner { if (amount > address(this).balance) amount = address(this).balance; payable(owner()).transfer(amount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[{"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxAmount","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newMitigationEnabled","type":"bool"}],"name":"changeMitigationEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMitigationFactor","type":"uint256"}],"name":"changeMitigationFactor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526b01d290004395eb7bbfffffff19600855600f805462ffffff60a81b191690556b033b2e3c9fd0803ce80000006010556011805461dead6001600160a01b03199091161760ff60a01b1916905560646012556013805460ff191690553480156200006d57600080fd5b5060006200007a620001e1565b600080546001600160a01b038084166001600160a01b0319928316811780855560018054909416921691909117909155604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916739b6570961e2be5f42e9d8de6d6570a77c270cb711790556008543060009081526002602052604081209190915560019060059062000123620001e5565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c5490911683529120805490921617905562000184620001e1565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce80000006040518082815260200191505060405180910390a3620001f4565b3390565b6001546001600160a01b031690565b61222d80620002046000396000f3fe60806040526004361061012e5760003560e01c8063702e3811116100ab578063a9059cbb1161006f578063a9059cbb1461043f578063b515566a14610478578063ba05e9bc14610528578063ca72a4e71461053d578063dd62ed3e14610563578063e01af92c1461059e57610135565b8063702e38111461038757806370a08231146103b1578063715018a6146103e45780638da5cb5b146103f957806395d89b411461042a57610135565b806323b872dd116100f257806323b872dd14610290578063273123b7146102d3578063313ce567146103065780635932ead114610331578063677daa571461035d57610135565b806306a227d21461013a57806306fdde0314610168578063095ea7b3146101f257806318160ddd1461023f5780631ad34a4f1461026657610135565b3661013557005b600080fd5b34801561014657600080fd5b506101666004803603602081101561015d57600080fd5b503515156105bd565b005b34801561017457600080fd5b5061017d610633565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b757818101518382015260200161019f565b50505050905090810190601f1680156101e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fe57600080fd5b5061022b6004803603604081101561021557600080fd5b506001600160a01b038135169060200135610656565b604080519115158252519081900360200190f35b34801561024b57600080fd5b50610254610674565b60408051918252519081900360200190f35b34801561027257600080fd5b506101666004803603602081101561028957600080fd5b5035610684565b34801561029c57600080fd5b5061022b600480360360608110156102b357600080fd5b506001600160a01b0381358116916020810135909116906040013561072b565b3480156102df57600080fd5b50610166600480360360208110156102f657600080fd5b50356001600160a01b03166107b2565b34801561031257600080fd5b5061031b61082b565b6040805160ff9092168252519081900360200190f35b34801561033d57600080fd5b506101666004803603602081101561035457600080fd5b50351515610830565b34801561036957600080fd5b506101666004803603602081101561038057600080fd5b50356108a6565b34801561039357600080fd5b50610166600480360360208110156103aa57600080fd5b5035610903565b3480156103bd57600080fd5b50610254600480360360208110156103d457600080fd5b50356001600160a01b0316610960565b3480156103f057600080fd5b50610166610982565b34801561040557600080fd5b5061040e610a24565b604080516001600160a01b039092168252519081900360200190f35b34801561043657600080fd5b5061017d610a33565b34801561044b57600080fd5b5061022b6004803603604081101561046257600080fd5b506001600160a01b038135169060200135610a54565b34801561048457600080fd5b506101666004803603602081101561049b57600080fd5b8101906020810181356401000000008111156104b657600080fd5b8201836020820111156104c857600080fd5b803590602001918460208302840111640100000000831117156104ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a68945050505050565b34801561053457600080fd5b50610166610b18565b6101666004803603602081101561055357600080fd5b50356001600160a01b0316610b90565b34801561056f57600080fd5b506102546004803603604081101561058657600080fd5b506001600160a01b0381358116916020013516610fc1565b610166600480360360208110156105b457600080fd5b50351515610fec565b6105c5611062565b6000546001600160a01b03908116911614610615576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b60118054911515600160a01b0260ff60a01b19909216919091179055565b6040805180820190915260098152685761676d6954616d6160b81b602082015290565b600061066a610663611062565b8484611066565b5060015b92915050565b6b033b2e3c9fd0803ce800000090565b61068c611062565b6000546001600160a01b039081169116146106dc576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b478111156106e75750475b6106ef610a24565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610727573d6000803e3d6000fd5b5050565b6000610738848484611152565b6107a884610744611062565b6107a385604051806060016040528060288152602001612115602891396001600160a01b038a16600090815260046020526040812090610782611062565b6001600160a01b0316815260208101919091526040016000205491906114c7565b611066565b5060019392505050565b6107ba611062565b6000546001600160a01b0390811691161461080a576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b600990565b610838611062565b6000546001600160a01b03908116911614610888576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b6108ae611062565b6000546001600160a01b039081169116146108fe576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b601055565b61090b611062565b6000546001600160a01b0390811691161461095b576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b601255565b6001600160a01b03811660009081526002602052604081205461066e9061155e565b61098a611062565b6000546001600160a01b039081169116146109da576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b60408051808201909152600781526657414754414d4160c81b602082015290565b600061066a610a61611062565b8484611152565b610a70611062565b6000546001600160a01b03908116911614610ac0576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b60005b815181101561072757600160066000848481518110610ade57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ac3565b610b20611062565b6000546001600160a01b03908116911614610b70576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6000610b7b30610960565b9050610b86816115be565b4761072781611621565b610b98611062565b6000546001600160a01b03908116911614610be8576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6013805460ff19166001179055600f54600160a01b900460ff1615610c54576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0383811691909117918290558291610c90913091166b033b2e3c9fd0803ce8000000611066565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cc957600080fd5b505afa158015610cdd573d6000803e3d6000fd5b505050506040513d6020811015610cf357600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610d4357600080fd5b505afa158015610d57573d6000803e3d6000fd5b505050506040513d6020811015610d6d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610dbf57600080fd5b505af1158015610dd3573d6000803e3d6000fd5b505050506040513d6020811015610de957600080fd5b5051600f80546001600160a01b039283166001600160a01b03199182161791829055600e8054909116918316919091179055600d541663f305d7193430610e2f81610960565b600080610e3a610a24565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610ea557600080fd5b505af1158015610eb9573d6000803e3d6000fd5b50505050506040513d6060811015610ed057600080fd5b5050600f80546001600160a01b039081166000908152600560209081526040808320805460ff1916600117905584546a295be96e640669ad9aca0060105560ff60a01b1960ff60b81b1960ff60b01b19909216600160b01b1791909116600160b81b1716600160a01b1794859055600d54815163095ea7b360e01b8152908516600482015260001960248201529051949093169363095ea7b393604480820194918390030190829087803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b505050506040513d6020811015610fb157600080fd5b50506013805460ff191690555050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610ff4611062565b6000546001600160a01b03908116911614611044576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600f8054911515600160b01b0260ff60b01b19909216919091179055565b3390565b6001600160a01b0383166110ab5760405162461bcd60e51b81526004018080602001828103825260248152602001806121ab6024913960400191505060405180910390fd5b6001600160a01b0382166110f05760405162461bcd60e51b81526004018080602001828103825260228152602001806120d26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166111975760405162461bcd60e51b81526004018080602001828103825260258152602001806121866025913960400191505060405180910390fd5b6001600160a01b0382166111dc5760405162461bcd60e51b81526004018080602001828103825260238152602001806120856023913960400191505060405180910390fd5b6000811161121b5760405162461bcd60e51b815260040180806020018281038252602981526020018061215d6029913960400191505060405180910390fd5b60135460ff1615611235576000600a819055600b55611240565b6002600a556008600b555b6001600160a01b038316301480159061126757506011546001600160a01b03838116911614155b801561128c5750611276610a24565b6001600160a01b0316836001600160a01b031614155b80156112b1575061129b610a24565b6001600160a01b0316826001600160a01b031614155b156114b7576001600160a01b03831660009081526006602052604090205460ff161580156112f857506001600160a01b03821660009081526006602052604090205460ff16155b61130157600080fd5b600f546001600160a01b03848116911614801561132c5750600d546001600160a01b03838116911614155b801561135157506001600160a01b03821660009081526005602052604090205460ff16155b80156113665750600f54600160b81b900460ff165b1561137a5760105481111561137a57600080fd5b600f546001600160a01b0383811691161480156113a1575060026010548161139e57fe5b06155b156113dd5760405162461bcd60e51b81526004018080602001828103825260298152602001806121cf6029913960400191505060405180910390fd5b60135460ff161580156113fd5750600f546001600160a01b038381169116145b80156114175750600d546001600160a01b03848116911614155b801561143c57506001600160a01b03831660009081526005602052604090205460ff16155b1561144c576002600a908155600b555b600f54600160a81b900460ff161580156114745750600f546001600160a01b03848116911614155b80156114895750600f54600160b01b900460ff165b156114b757600061149930610960565b90506114a4816115be565b4780156114b4576114b447611621565b50505b6114c283838361165b565b505050565b600081848411156115565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561151b578181015183820152602001611503565b50505050905090810190601f1680156115485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006008548211156115a15760405162461bcd60e51b815260040180806020018281038252602a8152602001806120a8602a913960400191505060405180910390fd5b60006115ab611666565b90506115b78382611689565b9392505050565b600f805460ff60a81b1916600160a81b1790556013805460ff19166001179055601154600160a01b900460ff16156115fe576115f9816116cb565b611607565b61160781611981565b506013805460ff19169055600f805460ff60a81b19169055565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610727573d6000803e3d6000fd5b6114c2838383611b30565b6000806000611673611c25565b90925090506116828282611689565b9250505090565b60006115b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c70565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116fa57fe5b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d602081101561177857600080fd5b505181518290600190811061178957fe5b6001600160a01b039283166020918202929092010152600d546117af9130911684611066565b60008060006117bc611cd5565b925092509250600d60009054906101000a90046001600160a01b03166001600160a01b031663791ac9478660008730426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561185c578181015183820152602001611844565b505050509050019650505050505050600060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b5050505060008060006118aa611cd5565b9194509250905060006118bd8584611e25565b905060006118cb8583611e7e565b90506118ed60646118e760125484611e2590919063ffffffff16565b90611689565b600f5460115491925061190d916001600160a01b03918216911683611152565b600e60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b5050505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119b057fe5b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611a0457600080fd5b505afa158015611a18573d6000803e3d6000fd5b505050506040513d6020811015611a2e57600080fd5b5051815182906001908110611a3f57fe5b6001600160a01b039283166020918202929092010152600d54611a659130911684611066565b600d5460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611aeb578181015183820152602001611ad3565b505050509050019650505050505050600060405180830381600087803b158015611b1457600080fd5b505af1158015611b28573d6000803e3d6000fd5b505050505050565b600080600080600080611b4287611ec0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611b749087611e7e565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611ba39086611f1d565b6001600160a01b038916600090815260026020526040902055611bc581611f77565b611bcf8483611fc1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60085460009081906b033b2e3c9fd0803ce8000000611c448282611689565b821015611c66576008546b033b2e3c9fd0803ce8000000935093505050611c6c565b90925090505b9091565b60008183611cbf5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561151b578181015183820152602001611503565b506000838581611ccb57fe5b0495945050505050565b6000806000806000600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d6060811015611d5557600080fd5b508051602091820151600e5460408051630dfe168160e01b8152905193965091945060009330936001600160a01b0390921692630dfe16819260048083019392829003018186803b158015611da957600080fd5b505afa158015611dbd573d6000803e3d6000fd5b505050506040513d6020811015611dd357600080fd5b50516001600160a01b031614905080611dec5781611dee565b825b6001600160701b0316955080611e045782611e06565b815b6001600160701b03169450611e1b8686611689565b9350505050909192565b600082611e345750600061066e565b82820282848281611e4157fe5b04146115b75760405162461bcd60e51b81526004018080602001828103825260218152602001806120f46021913960400191505060405180910390fd5b60006115b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c7565b6000806000806000806000806000611edd8a600a54600b54611fe5565b9250925092506000611eed611666565b90506000806000611f008e878787612034565b919e509c509a509598509396509194505050505091939550919395565b6000828201838110156115b7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611f81611666565b90506000611f8f8383611e25565b30600090815260026020526040902054909150611fac9082611f1d565b30600090815260026020526040902055505050565b600854611fce9083611e7e565b600855600954611fde9082611f1d565b6009555050565b6000808080611ff960646118e78989611e25565b9050600061200c60646118e78a89611e25565b905060006120248261201e8b86611e7e565b90611e7e565b9992985090965090945050505050565b60008080806120438886611e25565b905060006120518887611e25565b9050600061205f8888611e25565b905060006120718261201e8686611e7e565b939b939a5091985091965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735472616e73616374696f6e206d757374206265206c657373207468616e206d61785478416d6f756e74a2646970667358221220fdcd678ed48af38b6d7c83fe68662eaa4dde9cab6be28e427330f2b2985f085c64736f6c63430007060033
Deployed Bytecode
0x60806040526004361061012e5760003560e01c8063702e3811116100ab578063a9059cbb1161006f578063a9059cbb1461043f578063b515566a14610478578063ba05e9bc14610528578063ca72a4e71461053d578063dd62ed3e14610563578063e01af92c1461059e57610135565b8063702e38111461038757806370a08231146103b1578063715018a6146103e45780638da5cb5b146103f957806395d89b411461042a57610135565b806323b872dd116100f257806323b872dd14610290578063273123b7146102d3578063313ce567146103065780635932ead114610331578063677daa571461035d57610135565b806306a227d21461013a57806306fdde0314610168578063095ea7b3146101f257806318160ddd1461023f5780631ad34a4f1461026657610135565b3661013557005b600080fd5b34801561014657600080fd5b506101666004803603602081101561015d57600080fd5b503515156105bd565b005b34801561017457600080fd5b5061017d610633565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b757818101518382015260200161019f565b50505050905090810190601f1680156101e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fe57600080fd5b5061022b6004803603604081101561021557600080fd5b506001600160a01b038135169060200135610656565b604080519115158252519081900360200190f35b34801561024b57600080fd5b50610254610674565b60408051918252519081900360200190f35b34801561027257600080fd5b506101666004803603602081101561028957600080fd5b5035610684565b34801561029c57600080fd5b5061022b600480360360608110156102b357600080fd5b506001600160a01b0381358116916020810135909116906040013561072b565b3480156102df57600080fd5b50610166600480360360208110156102f657600080fd5b50356001600160a01b03166107b2565b34801561031257600080fd5b5061031b61082b565b6040805160ff9092168252519081900360200190f35b34801561033d57600080fd5b506101666004803603602081101561035457600080fd5b50351515610830565b34801561036957600080fd5b506101666004803603602081101561038057600080fd5b50356108a6565b34801561039357600080fd5b50610166600480360360208110156103aa57600080fd5b5035610903565b3480156103bd57600080fd5b50610254600480360360208110156103d457600080fd5b50356001600160a01b0316610960565b3480156103f057600080fd5b50610166610982565b34801561040557600080fd5b5061040e610a24565b604080516001600160a01b039092168252519081900360200190f35b34801561043657600080fd5b5061017d610a33565b34801561044b57600080fd5b5061022b6004803603604081101561046257600080fd5b506001600160a01b038135169060200135610a54565b34801561048457600080fd5b506101666004803603602081101561049b57600080fd5b8101906020810181356401000000008111156104b657600080fd5b8201836020820111156104c857600080fd5b803590602001918460208302840111640100000000831117156104ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a68945050505050565b34801561053457600080fd5b50610166610b18565b6101666004803603602081101561055357600080fd5b50356001600160a01b0316610b90565b34801561056f57600080fd5b506102546004803603604081101561058657600080fd5b506001600160a01b0381358116916020013516610fc1565b610166600480360360208110156105b457600080fd5b50351515610fec565b6105c5611062565b6000546001600160a01b03908116911614610615576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b60118054911515600160a01b0260ff60a01b19909216919091179055565b6040805180820190915260098152685761676d6954616d6160b81b602082015290565b600061066a610663611062565b8484611066565b5060015b92915050565b6b033b2e3c9fd0803ce800000090565b61068c611062565b6000546001600160a01b039081169116146106dc576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b478111156106e75750475b6106ef610a24565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610727573d6000803e3d6000fd5b5050565b6000610738848484611152565b6107a884610744611062565b6107a385604051806060016040528060288152602001612115602891396001600160a01b038a16600090815260046020526040812090610782611062565b6001600160a01b0316815260208101919091526040016000205491906114c7565b611066565b5060019392505050565b6107ba611062565b6000546001600160a01b0390811691161461080a576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b600990565b610838611062565b6000546001600160a01b03908116911614610888576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b6108ae611062565b6000546001600160a01b039081169116146108fe576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b601055565b61090b611062565b6000546001600160a01b0390811691161461095b576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b601255565b6001600160a01b03811660009081526002602052604081205461066e9061155e565b61098a611062565b6000546001600160a01b039081169116146109da576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b60408051808201909152600781526657414754414d4160c81b602082015290565b600061066a610a61611062565b8484611152565b610a70611062565b6000546001600160a01b03908116911614610ac0576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b60005b815181101561072757600160066000848481518110610ade57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ac3565b610b20611062565b6000546001600160a01b03908116911614610b70576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6000610b7b30610960565b9050610b86816115be565b4761072781611621565b610b98611062565b6000546001600160a01b03908116911614610be8576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b6013805460ff19166001179055600f54600160a01b900460ff1615610c54576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0383811691909117918290558291610c90913091166b033b2e3c9fd0803ce8000000611066565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cc957600080fd5b505afa158015610cdd573d6000803e3d6000fd5b505050506040513d6020811015610cf357600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610d4357600080fd5b505afa158015610d57573d6000803e3d6000fd5b505050506040513d6020811015610d6d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610dbf57600080fd5b505af1158015610dd3573d6000803e3d6000fd5b505050506040513d6020811015610de957600080fd5b5051600f80546001600160a01b039283166001600160a01b03199182161791829055600e8054909116918316919091179055600d541663f305d7193430610e2f81610960565b600080610e3a610a24565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610ea557600080fd5b505af1158015610eb9573d6000803e3d6000fd5b50505050506040513d6060811015610ed057600080fd5b5050600f80546001600160a01b039081166000908152600560209081526040808320805460ff1916600117905584546a295be96e640669ad9aca0060105560ff60a01b1960ff60b81b1960ff60b01b19909216600160b01b1791909116600160b81b1716600160a01b1794859055600d54815163095ea7b360e01b8152908516600482015260001960248201529051949093169363095ea7b393604480820194918390030190829087803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b505050506040513d6020811015610fb157600080fd5b50506013805460ff191690555050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610ff4611062565b6000546001600160a01b03908116911614611044576040805162461bcd60e51b8152602060048201819052602482015260008051602061213d833981519152604482015290519081900360640190fd5b600f8054911515600160b01b0260ff60b01b19909216919091179055565b3390565b6001600160a01b0383166110ab5760405162461bcd60e51b81526004018080602001828103825260248152602001806121ab6024913960400191505060405180910390fd5b6001600160a01b0382166110f05760405162461bcd60e51b81526004018080602001828103825260228152602001806120d26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166111975760405162461bcd60e51b81526004018080602001828103825260258152602001806121866025913960400191505060405180910390fd5b6001600160a01b0382166111dc5760405162461bcd60e51b81526004018080602001828103825260238152602001806120856023913960400191505060405180910390fd5b6000811161121b5760405162461bcd60e51b815260040180806020018281038252602981526020018061215d6029913960400191505060405180910390fd5b60135460ff1615611235576000600a819055600b55611240565b6002600a556008600b555b6001600160a01b038316301480159061126757506011546001600160a01b03838116911614155b801561128c5750611276610a24565b6001600160a01b0316836001600160a01b031614155b80156112b1575061129b610a24565b6001600160a01b0316826001600160a01b031614155b156114b7576001600160a01b03831660009081526006602052604090205460ff161580156112f857506001600160a01b03821660009081526006602052604090205460ff16155b61130157600080fd5b600f546001600160a01b03848116911614801561132c5750600d546001600160a01b03838116911614155b801561135157506001600160a01b03821660009081526005602052604090205460ff16155b80156113665750600f54600160b81b900460ff165b1561137a5760105481111561137a57600080fd5b600f546001600160a01b0383811691161480156113a1575060026010548161139e57fe5b06155b156113dd5760405162461bcd60e51b81526004018080602001828103825260298152602001806121cf6029913960400191505060405180910390fd5b60135460ff161580156113fd5750600f546001600160a01b038381169116145b80156114175750600d546001600160a01b03848116911614155b801561143c57506001600160a01b03831660009081526005602052604090205460ff16155b1561144c576002600a908155600b555b600f54600160a81b900460ff161580156114745750600f546001600160a01b03848116911614155b80156114895750600f54600160b01b900460ff165b156114b757600061149930610960565b90506114a4816115be565b4780156114b4576114b447611621565b50505b6114c283838361165b565b505050565b600081848411156115565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561151b578181015183820152602001611503565b50505050905090810190601f1680156115485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006008548211156115a15760405162461bcd60e51b815260040180806020018281038252602a8152602001806120a8602a913960400191505060405180910390fd5b60006115ab611666565b90506115b78382611689565b9392505050565b600f805460ff60a81b1916600160a81b1790556013805460ff19166001179055601154600160a01b900460ff16156115fe576115f9816116cb565b611607565b61160781611981565b506013805460ff19169055600f805460ff60a81b19169055565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610727573d6000803e3d6000fd5b6114c2838383611b30565b6000806000611673611c25565b90925090506116828282611689565b9250505090565b60006115b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c70565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116fa57fe5b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d602081101561177857600080fd5b505181518290600190811061178957fe5b6001600160a01b039283166020918202929092010152600d546117af9130911684611066565b60008060006117bc611cd5565b925092509250600d60009054906101000a90046001600160a01b03166001600160a01b031663791ac9478660008730426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561185c578181015183820152602001611844565b505050509050019650505050505050600060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b5050505060008060006118aa611cd5565b9194509250905060006118bd8584611e25565b905060006118cb8583611e7e565b90506118ed60646118e760125484611e2590919063ffffffff16565b90611689565b600f5460115491925061190d916001600160a01b03918216911683611152565b600e60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b5050505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119b057fe5b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611a0457600080fd5b505afa158015611a18573d6000803e3d6000fd5b505050506040513d6020811015611a2e57600080fd5b5051815182906001908110611a3f57fe5b6001600160a01b039283166020918202929092010152600d54611a659130911684611066565b600d5460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611aeb578181015183820152602001611ad3565b505050509050019650505050505050600060405180830381600087803b158015611b1457600080fd5b505af1158015611b28573d6000803e3d6000fd5b505050505050565b600080600080600080611b4287611ec0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611b749087611e7e565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611ba39086611f1d565b6001600160a01b038916600090815260026020526040902055611bc581611f77565b611bcf8483611fc1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60085460009081906b033b2e3c9fd0803ce8000000611c448282611689565b821015611c66576008546b033b2e3c9fd0803ce8000000935093505050611c6c565b90925090505b9091565b60008183611cbf5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561151b578181015183820152602001611503565b506000838581611ccb57fe5b0495945050505050565b6000806000806000600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d6060811015611d5557600080fd5b508051602091820151600e5460408051630dfe168160e01b8152905193965091945060009330936001600160a01b0390921692630dfe16819260048083019392829003018186803b158015611da957600080fd5b505afa158015611dbd573d6000803e3d6000fd5b505050506040513d6020811015611dd357600080fd5b50516001600160a01b031614905080611dec5781611dee565b825b6001600160701b0316955080611e045782611e06565b815b6001600160701b03169450611e1b8686611689565b9350505050909192565b600082611e345750600061066e565b82820282848281611e4157fe5b04146115b75760405162461bcd60e51b81526004018080602001828103825260218152602001806120f46021913960400191505060405180910390fd5b60006115b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c7565b6000806000806000806000806000611edd8a600a54600b54611fe5565b9250925092506000611eed611666565b90506000806000611f008e878787612034565b919e509c509a509598509396509194505050505091939550919395565b6000828201838110156115b7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611f81611666565b90506000611f8f8383611e25565b30600090815260026020526040902054909150611fac9082611f1d565b30600090815260026020526040902055505050565b600854611fce9083611e7e565b600855600954611fde9082611f1d565b6009555050565b6000808080611ff960646118e78989611e25565b9050600061200c60646118e78a89611e25565b905060006120248261201e8b86611e7e565b90611e7e565b9992985090965090945050505050565b60008080806120438886611e25565b905060006120518887611e25565b9050600061205f8888611e25565b905060006120718261201e8686611e7e565b939b939a5091985091965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735472616e73616374696f6e206d757374206265206c657373207468616e206d61785478416d6f756e74a2646970667358221220fdcd678ed48af38b6d7c83fe68662eaa4dde9cab6be28e427330f2b2985f085c64736f6c63430007060033
Deployed Bytecode Sourcemap
6719:13475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12615:136;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12615:136:0;;;;:::i;:::-;;8610:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9462:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9462:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8887:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18315:179;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18315:179:0;;:::i;9631:313::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9631:313:0;;;;;;;;;;;;;;;;;:::i;16811:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16811:88:0;-1:-1:-1;;;;;16811:88:0;;:::i;8796:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9952:103;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9952:103:0;;;;:::i;16514:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16514:109:0;;:::i;12472:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12472:135:0;;:::i;8990:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8990:138:0;-1:-1:-1;;;;;8990:138:0;;:::i;3342:156::-;;;;;;;;;;;;;:::i;3120:87::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3120:87:0;;;;;;;;;;;;;;8701;;;;;;;;;;;;;:::i;9136:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9136:167:0;;;;;;;;:::i;16635:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16635:164:0;;-1:-1:-1;16635:164:0;;-1:-1:-1;;;;;16635:164:0:i;17981:326::-;;;;;;;;;;;;;:::i;15528:978::-;;;;;;;;;;;;;;;;-1:-1:-1;15528:978:0;-1:-1:-1;;;;;15528:978:0;;:::i;9311:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9311:143:0;;;;;;;;;;:::i;15370:109::-;;;;;;;;;;;;;;;;-1:-1:-1;15370:109:0;;;;:::i;12615:136::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;12703:17:::1;:40:::0;;;::::1;;-1:-1:-1::0;;;12703:40:0::1;-1:-1:-1::0;;;;12703:40:0;;::::1;::::0;;;::::1;::::0;;12615:136::o;8610:83::-;8680:5;;;;;;;;;;;;-1:-1:-1;;;8680:5:0;;;;8610:83;:::o;9462:161::-;9537:4;9554:39;9563:12;:10;:12::i;:::-;9577:7;9586:6;9554:8;:39::i;:::-;-1:-1:-1;9611:4:0;9462:161;;;;;:::o;8887:95::-;7221:27;8887:95;:::o;18315:179::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;18389:21:::1;18380:6;:30;18376:66;;;-1:-1:-1::0;18421:21:0::1;18376:66;18461:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;18453:25:0::1;:33;18479:6;18453:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18315:179:::0;:::o;9631:313::-;9729:4;9746:36;9756:6;9764:9;9775:6;9746:9;:36::i;:::-;9793:121;9802:6;9810:12;:10;:12::i;:::-;9824:89;9862:6;9824:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9824:19:0;;;;;;:11;:19;;;;;;9844:12;:10;:12::i;:::-;-1:-1:-1;;;;;9824:33:0;;;;;;;;;;;;-1:-1:-1;9824:33:0;;;:89;:37;:89::i;:::-;9793:8;:121::i;:::-;-1:-1:-1;9932:4:0;9631:313;;;;;:::o;16811:88::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16871:12:0::1;16886:5;16871:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16871:20:0::1;::::0;;16811:88::o;8796:83::-;7596:1;8796:83;:::o;9952:103::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;10024:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;10024:23:0::1;-1:-1:-1::0;;;;10024:23:0;;::::1;::::0;;;::::1;::::0;;9952:103::o;16514:109::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;16589:12:::1;:26:::0;16514:109::o;12472:135::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;12561:16:::1;:38:::0;12472:135::o;8990:138::-;-1:-1:-1;;;;;9103:16:0;;9056:7;9103:16;;;:7;:16;;;;;;9083:37;;:19;:37::i;3342:156::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;3449:1:::1;3433:6:::0;;3412:40:::1;::::0;-1:-1:-1;;;;;3433:6:0;;::::1;::::0;3412:40:::1;::::0;3449:1;;3412:40:::1;3463:14;:27:::0;;-1:-1:-1;;;;;;3463:27:0::1;::::0;;3342:156::o;3120:87::-;3185:14;;-1:-1:-1;;;;;3185:14:0;3120:87;:::o;8701:::-;8773:7;;;;;;;;;;;;-1:-1:-1;;;8773:7:0;;;;8701:87;:::o;9136:167::-;9214:4;9231:42;9241:12;:10;:12::i;:::-;9255:9;9266:6;9231:9;:42::i;16635:164::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;16709:6:::1;16704:88;16725:5;:12;16721:1;:16;16704:88;;;16776:4;16759;:14;16764:5;16770:1;16764:8;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16759:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16759:14:0;:21;;-1:-1:-1;;16759:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16739:3:0::1;16704:88;;17981:326:::0;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;18101:23:::1;18127:24;18145:4;18127:9;:24::i;:::-;18101:50;;18162:33;18179:15;18162:16;:33::i;:::-;18235:21;18267:32;18235:21:::0;18267:12:::1;:32::i;15528:978::-:0;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;15605:10:::1;:17:::0;;-1:-1:-1;;15605:17:0::1;15618:4;15605:17;::::0;;15642:11:::1;::::0;-1:-1:-1;;;15642:11:0;::::1;15605:17;15642:11;15641:12;15633:47;;;::::0;;-1:-1:-1;;;15633:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15766:15;:34:::0;;-1:-1:-1;;;;;;15766:34:0::1;-1:-1:-1::0;;;;;15766:34:0;;::::1;::::0;;;::::1;::::0;;;;;;15811:58:::1;::::0;15828:4:::1;::::0;15843:15:::1;7221:27;15811:8;:58::i;:::-;15914:16;-1:-1:-1::0;;;;;15914:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15914:26:0;15968:23:::1;::::0;;-1:-1:-1;;;15968:23:0;;;;-1:-1:-1;;;;;15896:56:0;;::::1;::::0;::::1;::::0;15961:4:::1;::::0;15968:21;;::::1;::::0;::::1;::::0;:23:::1;::::0;;::::1;::::0;15914:26:::1;::::0;15968:23;;;;;;;;:21;:23;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15968:23:0;15896:96:::1;::::0;;-1:-1:-1;;;;;;15896:96:0::1;::::0;;;;;;-1:-1:-1;;;;;15896:96:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;15968:23:::1;::::0;15896:96;;;;;;;-1:-1:-1;15896:96:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15896:96:0;15880:13:::1;:112:::0;;-1:-1:-1;;;;;15880:112:0;;::::1;-1:-1:-1::0;;;;;;15880:112:0;;::::1;;::::0;;;;16003:22:::1;:54:::0;;;;::::1;16043:13:::0;;::::1;16003:54:::0;;;::::1;::::0;;16068:15:::1;::::0;::::1;:31;16107:9;16126:4;16132:24;16126:4:::0;16132:9:::1;:24::i;:::-;16157:1;16159::::0;16161:7:::1;:5;:7::i;:::-;16169:15;16068:117;;;;;;;;;;;;;-1:-1:-1::0;;;;;16068:117:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16068:117:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;16223:13:0::1;::::0;;-1:-1:-1;;;;;16223:13:0;;::::1;16196:42;::::0;;;:18:::1;16068:117;16196:42:::0;;;16068:117;16196:42;;;:49;;-1:-1:-1;;16196:49:0::1;16241:4;16196:49;::::0;;16256:18;;16333:25:::1;16318:12;:40:::0;-1:-1:-1;;;;;;;;;;;;16256:18:0;;::::1;-1:-1:-1::0;;;16256:18:0::1;16285:22:::0;;;::::1;-1:-1:-1::0;;;16285:22:0::1;16369:18;-1:-1:-1::0;;;16369:18:0::1;::::0;;;;16436:15:::1;::::0;16398:71;;-1:-1:-1;;;16398:71:0;;16436:15;;::::1;16398:71;::::0;::::1;::::0;-1:-1:-1;;16398:71:0;;;;;;16405:13;;;::::1;::::0;16398:29:::1;::::0;:71;;;;;;;;;;;;;16405:13;16398:71;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;16480:10:0::1;:18:::0;;-1:-1:-1;;16480:18:0::1;::::0;;-1:-1:-1;;15528:978:0:o;9311:143::-;-1:-1:-1;;;;;9419:18:0;;;9392:7;9419:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9311:143::o;15370:109::-;3265:12;:10;:12::i;:::-;3255:6;;-1:-1:-1;;;;;3255:6:0;;;:22;;;3247:67;;;;;-1:-1:-1;;;3247:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3247:67:0;;;;;;;;;;;;;;;15448:11:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;15448:23:0::1;-1:-1:-1::0;;;;15448:23:0;;::::1;::::0;;;::::1;::::0;;15370:109::o;804:98::-;884:10;804:98;:::o;10325:335::-;-1:-1:-1;;;;;10418:19:0;;10410:68;;;;-1:-1:-1;;;10410:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10497:21:0;;10489:68;;;;-1:-1:-1;;;10489:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10620:32;;;;;;;;;;;;;;;;;10325:335;;;:::o;10668:1796::-;-1:-1:-1;;;;;10756:18:0;;10748:68;;;;-1:-1:-1;;;10748:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10835:16:0;;10827:64;;;;-1:-1:-1;;;10827:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10919:1;10910:6;:10;10902:64;;;;-1:-1:-1;;;10902:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10983:10;;;;10979:158;;;11022:1;11010:9;:13;;;11038:9;:13;10979:158;;;11096:1;11084:9;:13;11124:1;11112:9;:13;10979:158;-1:-1:-1;;;;;11153:21:0;;11169:4;11153:21;;;;:41;;-1:-1:-1;11184:10:0;;-1:-1:-1;;;;;11178:16:0;;;11184:10;;11178:16;;11153:41;:60;;;;;11206:7;:5;:7::i;:::-;-1:-1:-1;;;;;11198:15:0;:4;-1:-1:-1;;;;;11198:15:0;;;11153:60;:77;;;;;11223:7;:5;:7::i;:::-;-1:-1:-1;;;;;11217:13:0;:2;-1:-1:-1;;;;;11217:13:0;;;11153:77;11149:1263;;;-1:-1:-1;;;;;11256:10:0;;;;;;:4;:10;;;;;;;;11255:11;:24;;;;-1:-1:-1;;;;;;11271:8:0;;;;;;:4;:8;;;;;;;;11270:9;11255:24;11247:33;;;;;;11307:13;;-1:-1:-1;;;;;11299:21:0;;;11307:13;;11299:21;:55;;;;-1:-1:-1;11338:15:0;;-1:-1:-1;;;;;11324:30:0;;;11338:15;;11324:30;;11299:55;:83;;;;-1:-1:-1;;;;;;11360:22:0;;;;;;:18;:22;;;;;;;;11358:24;11299:83;:102;;;;-1:-1:-1;11386:15:0;;-1:-1:-1;;;11386:15:0;;;;11299:102;11295:331;;;11469:12;;11459:6;:22;;11451:31;;;;;;11652:13;;-1:-1:-1;;;;;11646:19:0;;;11652:13;;11646:19;:44;;;;;11684:1;11669:12;;:16;;;;;;:21;11646:44;11642:136;;;11711:51;;-1:-1:-1;;;11711:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11642:136;11811:10;;;;11810:11;:34;;;;-1:-1:-1;11831:13:0;;-1:-1:-1;;;;;11825:19:0;;;11831:13;;11825:19;11810:34;:70;;;;-1:-1:-1;11864:15:0;;-1:-1:-1;;;;;11848:32:0;;;11864:15;;11848:32;;11810:70;:100;;;;-1:-1:-1;;;;;;11886:24:0;;;;;;:18;:24;;;;;;;;11884:26;11810:100;11806:187;;;11943:1;11931:9;:13;;;11963:9;:14;11806:187;12014:6;;-1:-1:-1;;;12014:6:0;;;;12013:7;:32;;;;-1:-1:-1;12032:13:0;;-1:-1:-1;;;;;12024:21:0;;;12032:13;;12024:21;;12013:32;:47;;;;-1:-1:-1;12049:11:0;;-1:-1:-1;;;12049:11:0;;;;12013:47;12009:392;;;12081:28;12112:24;12130:4;12112:9;:24::i;:::-;12081:55;;12155:38;12172:20;12155:16;:38::i;:::-;12241:21;12284:22;;12281:105;;12331:35;12344:21;12331:12;:35::i;:::-;12009:392;;;12426:30;12441:4;12446:2;12449:6;12426:14;:30::i;:::-;10668:1796;;;:::o;1941:190::-;2027:7;2063:12;2055:6;;;;2047:29;;;;-1:-1:-1;;;2047:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:5:0;;;1941:190::o;10063:254::-;10130:7;10169;;10158;:18;;10150:73;;;;-1:-1:-1;;;10150:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10234:19;10257:10;:8;:10::i;:::-;10234:33;-1:-1:-1;10285:24:0;:7;10234:33;10285:11;:24::i;:::-;10278:31;10063:254;-1:-1:-1;;;10063:254:0:o;13345:303::-;8186:6;:13;;-1:-1:-1;;;;8186:13:0;-1:-1:-1;;;8186:13:0;;;13423:10:::1;:17:::0;;-1:-1:-1;;13423:17:0::1;8195:4:::0;13423:17:::1;::::0;;13455::::1;::::0;-1:-1:-1;;;13455:17:0;::::1;8186:13:::0;13455:17:::1;13451:161;;;13489:43;13520:11;13489:30;:43::i;:::-;13451:161;;;13565:35;13588:11;13565:22;:35::i;:::-;-1:-1:-1::0;13622:10:0::1;:18:::0;;-1:-1:-1;;13622:18:0::1;::::0;;8222:6;:14;;-1:-1:-1;;;;8222:14:0;;;13345:303::o;15262:96::-;15319:14;;:31;;-1:-1:-1;;;;;15319:14:0;;;;:31;;;;;15343:6;;15319:14;:31;:14;:31;15343:6;15319:14;:31;;;;;;;;;;;;;;;;;;;16915:146;17009:44;17027:6;17035:9;17046:6;17009:17;:44::i;19758:163::-;19799:7;19820:15;19837;19856:19;:17;:19::i;:::-;19819:56;;-1:-1:-1;19819:56:0;-1:-1:-1;19893:20:0;19819:56;;19893:11;:20::i;:::-;19886:27;;;;19758:163;:::o;2393:132::-;2451:7;2478:39;2482:1;2485;2478:39;;;;;;;;;;;;;;;;;:3;:39::i;14185:1061::-;14289:16;;;14303:1;14289:16;;;;;;;;14265:21;;14289:16;;;;;;;;;;-1:-1:-1;14289:16:0;14265:40;;14334:4;14316;14321:1;14316:7;;;;;;;;-1:-1:-1;;;;;14316:23:0;;;:7;;;;;;;;;;:23;;;;14360:15;;:22;;;-1:-1:-1;;;14360:22:0;;;;:15;;;;;:20;;:22;;;;;14316:7;;14360:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14360:22:0;14350:7;;:4;;14355:1;;14350:7;;;;;;-1:-1:-1;;;;;14350:32:0;;;:7;;;;;;;;;:32;14427:15;;14395:62;;14412:4;;14427:15;14445:11;14395:8;:62::i;:::-;14510:23;14535:21;14558:13;14575;:11;:13::i;:::-;14509:79;;;;;;14609:15;;;;;;;;;-1:-1:-1;;;;;14609:15:0;-1:-1:-1;;;;;14609:66:0;;14690:11;14716:1;14760:4;14787;14807:15;14609:224;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14609:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14845:20;14867:18;14886:14;14904:13;:11;:13::i;:::-;14844:73;;-1:-1:-1;14844:73:0;-1:-1:-1;14844:73:0;-1:-1:-1;14938:24:0;14965:21;:5;14844:73;14965:9;:21::i;:::-;14938:48;-1:-1:-1;14997:21:0;15021:34;:12;14938:48;15021:16;:34::i;:::-;14997:58;;15082:44;15122:3;15082:35;15100:16;;15082:13;:17;;:35;;;;:::i;:::-;:39;;:44::i;:::-;15157:13;;15172:10;;15066:60;;-1:-1:-1;15147:51:0;;-1:-1:-1;;;;;15157:13:0;;;;15172:10;15066:60;15147:9;:51::i;:::-;15209:22;;;;;;;;;-1:-1:-1;;;;;15209:22:0;-1:-1:-1;;;;;15209:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14185:1061;;;;;;;;;;:::o;13660:517::-;13756:16;;;13770:1;13756:16;;;;;;;;13732:21;;13756:16;;;;;;;;;;-1:-1:-1;13756:16:0;13732:40;;13801:4;13783;13788:1;13783:7;;;;;;;;-1:-1:-1;;;;;13783:23:0;;;:7;;;;;;;;;;:23;;;;13827:15;;:22;;;-1:-1:-1;;;13827:22:0;;;;:15;;;;;:20;;:22;;;;;13783:7;;13827:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13827:22:0;13817:7;;:4;;13822:1;;13817:7;;;;;;-1:-1:-1;;;;;13817:32:0;;;:7;;;;;;;;;:32;13894:15;;13862:62;;13879:4;;13894:15;13912:11;13862:8;:62::i;:::-;13945:15;;:224;;-1:-1:-1;;;13945:224:0;;;;;;;;:15;:224;;;;;;14123:4;13945:224;;;;;;14143:15;13945:224;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13945:15:0;;;;:66;;14026:11;;14096:4;;14123;14143:15;13945:224;;;;;;;;;;;;;;;;:15;:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13660:517;;:::o;17069:488::-;17168:15;17185:23;17210:12;17224:23;17249:12;17263:13;17280:19;17291:7;17280:10;:19::i;:::-;-1:-1:-1;;;;;17328:15:0;;;;;;:7;:15;;;;;;17167:132;;-1:-1:-1;17167:132:0;;-1:-1:-1;17167:132:0;;-1:-1:-1;17167:132:0;-1:-1:-1;17167:132:0;-1:-1:-1;17167:132:0;-1:-1:-1;17328:28:0;;17167:132;17328:19;:28::i;:::-;-1:-1:-1;;;;;17310:15:0;;;;;;;:7;:15;;;;;;:46;;;;17388:18;;;;;;;:39;;17411:15;17388:22;:39::i;:::-;-1:-1:-1;;;;;17367:18:0;;;;;;:7;:18;;;;;:60;17439:16;17449:5;17439:9;:16::i;:::-;17466:23;17478:4;17484;17466:11;:23::i;:::-;17522:9;-1:-1:-1;;;;;17505:44:0;17514:6;-1:-1:-1;;;;;17505:44:0;;17533:15;17505:44;;;;;;;;;;;;;;;;;;17069:488;;;;;;;;;:::o;19929:262::-;20026:7;;19979;;;;7221:27;20100:20;20026:7;7221:27;20100:11;:20::i;:::-;20090:7;:30;20086:61;;;20130:7;;7221:27;20122:25;;;;;;;;20086:61;20166:7;;-1:-1:-1;20175:7:0;-1:-1:-1;19929:262:0;;;:::o;2533:189::-;2619:7;2654:12;2647:5;2639:28;;;;-1:-1:-1;;;2639:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2678:9;2694:1;2690;:5;;;;;;;2533:189;-1:-1:-1;;;;;2533:189:0:o;12759:574::-;12805:20;12827:18;12847:13;12874:17;12893;12915:22;;;;;;;;;-1:-1:-1;;;;;12915:22:0;-1:-1:-1;;;;;12915:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12915:36:0;;;;;;;13058:22;;12915:36;13058:31;;-1:-1:-1;;;13058:31:0;;;;12915:36;;-1:-1:-1;12915:36:0;;-1:-1:-1;13036:19:0;;13101:4;;-1:-1:-1;;;;;13058:22:0;;;;:29;;:31;;;;;12915:36;13058:31;;;;;:22;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13058:31:0;-1:-1:-1;;;;;13058:48:0;;;-1:-1:-1;13058:48:0;13178:38;;13207:9;13178:38;;;13195:9;13178:38;-1:-1:-1;;;;;13163:53:0;;;13240:14;:38;;13269:9;13240:38;;;13257:9;13240:38;-1:-1:-1;;;;;13227:51:0;;-1:-1:-1;13297:28:0;:12;13227:51;13297:16;:28::i;:::-;13289:36;;12759:574;;;;;;:::o;2139:246::-;2197:7;2221:6;2217:47;;-1:-1:-1;2251:1:0;2244:8;;2217:47;2286:5;;;2290:1;2286;:5;:1;2310:5;;;;;:10;2302:56;;;;-1:-1:-1;;;2302:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1797:136;1855:7;1882:43;1886:1;1889;1882:43;;;;;;;;;;;;;;;;;:3;:43::i;18506:471::-;18565:7;18574;18583;18592;18601;18610;18631:23;18656:12;18670:13;18687:42;18699:7;18708:9;;18719;;18687:11;:42::i;:::-;18630:99;;;;;;18740:19;18763:10;:8;:10::i;:::-;18740:33;;18785:15;18802:23;18827:12;18843:46;18855:7;18864:4;18870:5;18877:11;18843;:46::i;:::-;18784:105;;-1:-1:-1;18784:105:0;-1:-1:-1;18784:105:0;-1:-1:-1;18940:15:0;;-1:-1:-1;18957:4:0;;-1:-1:-1;18963:5:0;;-1:-1:-1;;;;;18506:471:0;;;;;;;:::o;1610:179::-;1668:7;1700:5;;;1724:6;;;;1716:46;;;;;-1:-1:-1;;;1716:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17565:212;17618:19;17641:10;:8;:10::i;:::-;17618:33;-1:-1:-1;17662:13:0;17678:22;:5;17618:33;17678:9;:22::i;:::-;17752:4;17736:22;;;;:7;:22;;;;;;17662:38;;-1:-1:-1;17736:33:0;;17662:38;17736:26;:33::i;:::-;17727:4;17711:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;17565:212:0:o;17785:147::-;17863:7;;:17;;17875:4;17863:11;:17::i;:::-;17853:7;:27;17904:10;;:20;;17919:4;17904:14;:20::i;:::-;17891:10;:33;-1:-1:-1;;17785:147:0:o;18985:351::-;19078:7;;;;19131:28;19155:3;19131:19;:7;19143:6;19131:11;:19::i;:28::-;19116:43;-1:-1:-1;19170:13:0;19186:29;19211:3;19186:20;:7;19198;19186:11;:20::i;:29::-;19170:45;-1:-1:-1;19226:23:0;19252:28;19170:45;19252:17;:7;19264:4;19252:11;:17::i;:::-;:21;;:28::i;:::-;19226:54;19316:4;;-1:-1:-1;19322:5:0;;-1:-1:-1;18985:351:0;;-1:-1:-1;;;;;18985:351:0:o;19344:409::-;19454:7;;;;19510:24;:7;19522:11;19510;:24::i;:::-;19492:42;-1:-1:-1;19545:12:0;19560:21;:4;19569:11;19560:8;:21::i;:::-;19545:36;-1:-1:-1;19592:13:0;19608:22;:5;19618:11;19608:9;:22::i;:::-;19592:38;-1:-1:-1;19641:23:0;19667:28;19592:38;19667:17;:7;19679:4;19667:11;:17::i;:28::-;19714:7;;;;-1:-1:-1;19740:4:0;;-1:-1:-1;19344:409:0;;-1:-1:-1;;;;;;;19344:409:0:o
Swarm Source
ipfs://fdcd678ed48af38b6d7c83fe68662eaa4dde9cab6be28e427330f2b2985f085c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.