Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 CCHAIN
Holders
28
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CloudChain
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-26 */ // Telegram : https://t.me/CloudChainERC // Twitter : https://twitter.com/CloudChainERC // SPDX-License-Identifier: MIT /* ☁️ CloudChain (CCHAIN) ☁️ Blockchain-Based Cloud Platform CloudChain is a Blockchain-Based Cloud Platform. Inspired by Amazon Web Services (AWS), Cloudchain is a cloud ecosystem powered by blockchain technology. 🔗 💻 Enjoy Virtual Private Servers, Virtual Private Networks, Computing, Lambda, and various cloud server payment gateways using CCHAIN. 📟 TG : https://t.me/CloudChainERC 📱 Twitter : https://twitter.com/CloudChainERC */ pragma solidity ^0.8.12; 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; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface DexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface DexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; CheckTx[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping(address => bool) internal CheckTx; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } modifier Cloud() { require(isCloud(msg.sender), "!Cloud"); _; } function isCloud(address adr) public view returns (bool) { return CheckTx[adr]; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract CloudChain is Ownable, IERC20 { using SafeMath for uint256; string private constant _name = "Cloud Chain"; string private constant _symbol = "CCHAIN"; address private constant DEAD = 0x000000000000000000000000000000000000dEaD; address private constant ZERO = 0x0000000000000000000000000000000000000000; address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000 * (10**_decimals); uint256 public _maxTxAmount = (_totalSupply * 45) / 1000; uint256 public _walletMax = (_totalSupply * 50) / 1000; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; uint256 public liquidityFee = 1; uint256 public marketingFee = 1; uint256 public devFee = 0; uint256 public totalFee = 1; uint256 public totalFeeIfSelling = 0; bool public takeBuyFee = true; bool public takeSellFee = true; bool public takeTransferFee = true; address private lpWallet; address private projectAddress; address private teamAddress; DexRouter public router; address public pair; mapping(address => bool) public isPair; uint256 public launchedAt; bool public tradingOpen = true; bool private inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = (_totalSupply * 25) / 10000; event AutoLiquify(uint256 amountETH, uint256 amountBOG); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { router = DexRouter(routerAddress); pair = DexFactory(router.factory()).createPair( router.WETH(), address(this) ); isPair[pair] = true; lpWallet = msg.sender; projectAddress = 0xbE757AbbE9DD7F21b43930bFE72Cc856fF542cb1; teamAddress = 0xbE757AbbE9DD7F21b43930bFE72Cc856fF542cb1; _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][address(pair)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD] = true; isFeeExempt[routerAddress] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isFeeExempt[projectAddress] = true; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function CloudCharge( uint256 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 extraSellFee ) public Cloud { liquidityFee = newLiqFee; marketingFee = newMarketingFee; devFee = newDevFee; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee + extraSellFee; } function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { require(tokenAddress != address(this), "Cant remove the native token"); return IERC20(tokenAddress).transfer(msg.sender, tokens); } function removeEther(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function checkTxLimit(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); } function failsCaptcha(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if (!CheckTx[sender] && !CheckTx[recipient]) { require(tradingOpen, ""); } if ( isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBackAndPair(); } if (!launched() && isPair[recipient]) { require(_balances[sender] > 0, ""); launch(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, ""); if (!isTxLimitExempt[recipient]) { } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = 0; if (isPair[recipient] && takeSellFee) { feeApplicable = totalFeeIfSelling; } if (isPair[sender] && takeBuyFee) { feeApplicable = totalFee; } if (!isPair[sender] && !isPair[recipient]) { if (takeTransferFee) { feeApplicable = totalFeeIfSelling; } else { feeApplicable = 0; } } uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBackAndPair() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess1, ) = payable(projectAddress).call{ value: amountETHMarketing, gas: 30000 }(""); tmpSuccess1 = false; (tmpSuccess1, ) = payable(teamAddress).call{ value: amountETHDev, gas: 30000 }(""); tmpSuccess1 = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, lpWallet, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } }
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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"CloudCharge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isCloud","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000661565b6200004890633b9aca0062000679565b6003556103e8600354602d6200005f919062000679565b6200006b919062000693565b6004556103e8600354603262000082919062000679565b6200008e919062000693565b6005556001600a819055600b8190556000600c819055600d91909155600e55600f80546201010162ffffff199091161790556016805463ffff00ff19166201000117905560035461271090620000e690601962000679565b620000f2919062000693565b6017553480156200010257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e09190620006b6565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002689190620006b6565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620006b6565b601380546001600160a01b03199081166001600160a01b0393841690811783556000908152601460209081526040808320805460ff199081166001908117909255600f80546301000000600160b81b0319163363010000008102919091179091556010805473be757abbe9dd7f21b43930bfe72cc856ff542cb190891681178255601180549099161790975530808752600786528487206012548b16885286528487206000199081905589548b168852858820558187526008808752858820805485168617905590875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548416851790556002548a168752848720805484168517905590865260098552838620805483168417905596548816855282852080548216831790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054821683179055945490961683529381529290208054909116909217909155600c54600b54600a546200048693620004729290620004df811b62000c8717901c565b620004df60201b62000c871790919060201c565b600d819055600e5560035433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006f7565b600080620004ee8385620006e1565b905083811015620005455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a55781600019048211156200058957620005896200054e565b808516156200059757918102915b93841c939080029062000569565b509250929050565b600082620005be5750600162000548565b81620005cd5750600062000548565b8160018114620005e65760028114620005f15762000611565b600191505062000548565b60ff8411156200060557620006056200054e565b50506001821b62000548565b5060208310610133831016604e8410600b841016171562000636575081810a62000548565b62000642838362000564565b80600019048211156200065957620006596200054e565b029392505050565b60006200067260ff841683620005ad565b9392505050565b80820281158282048414176200054857620005486200054e565b600082620006b157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006c957600080fd5b81516001600160a01b03811681146200054557600080fd5b808201808211156200054857620005486200054e565b611a5080620007076000396000f3fe6080604052600436106102345760003560e01c8063807c2d9c1161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106d7578063f0ef821f14610707578063f2fde38b14610721578063f887ea4014610741578063ffb54a991461076157600080fd5b8063a9059cbb14610624578063bf56b37114610644578063ca987b0e1461065a578063da00097d14610670578063dd62ed3e1461069157600080fd5b80638da5cb5b116100f25780638da5cb5b1461058157806395d89b411461059f57806398118cb4146105ce578063a5355989146105e4578063a8aa1b311461060457600080fd5b8063807c2d9c146104c95780638637b069146104df578063893d20e8146104ff5780638b42507f146105315780638ba3e2451461056157600080fd5b8063481db7f7116101bc5780637054093311610180578063705409331461042757806370a0823114610446578063715018a61461047c578063787a051b146104935780637d1db4a5146104b357600080fd5b8063481db7f7146103825780634a74bb02146103bb578063571ac8b0146103db5780636827e764146103fb5780636b67c4df1461041157600080fd5b80631df4ccfc116102035780631df4ccfc146102eb57806323b872dd146103015780632b112e4914610321578063313ce567146103365780633f4218e01461035257600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a657806318160ddd146102d657600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600b81526a21b637bab21021b430b4b760a91b60208201525b6040516102609190611708565b3480156102b257600080fd5b506102c66102c136600461176e565b61077b565b6040519015158152602001610260565b3480156102e257600080fd5b50600354610256565b3480156102f757600080fd5b50610256600d5481565b34801561030d57600080fd5b506102c661031c36600461179a565b6107e8565b34801561032d57600080fd5b506102566108aa565b34801561034257600080fd5b5060405160128152602001610260565b34801561035e57600080fd5b506102c661036d3660046117db565b60086020526000908152604090205460ff1681565b34801561038e57600080fd5b506102c661039d3660046117db565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103c757600080fd5b506016546102c69062010000900460ff1681565b3480156103e757600080fd5b506102c66103f63660046117db565b61091b565b34801561040757600080fd5b50610256600c5481565b34801561041d57600080fd5b50610256600b5481565b34801561043357600080fd5b50600f546102c690610100900460ff1681565b34801561045257600080fd5b506102566104613660046117db565b6001600160a01b031660009081526006602052604090205490565b34801561048857600080fd5b50610491610929565b005b34801561049f57600080fd5b506104916104ae3660046117f8565b6109a6565b3480156104bf57600080fd5b5061025660045481565b3480156104d557600080fd5b5061025660055481565b3480156104eb57600080fd5b506102c66104fa36600461176e565b610a18565b34801561050b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b34801561053d57600080fd5b506102c661054c3660046117db565b60096020526000908152604090205460ff1681565b34801561056d57600080fd5b5061049161057c366004611811565b610b0c565b34801561058d57600080fd5b506000546001600160a01b0316610519565b3480156105ab57600080fd5b5060408051808201909152600681526521a1a420a4a760d11b6020820152610299565b3480156105da57600080fd5b50610256600a5481565b3480156105f057600080fd5b50600f546102c69062010000900460ff1681565b34801561061057600080fd5b50601354610519906001600160a01b031681565b34801561063057600080fd5b506102c661063f36600461176e565b610b90565b34801561065057600080fd5b5061025660155481565b34801561066657600080fd5b50610256600e5481565b34801561067c57600080fd5b506016546102c6906301000000900460ff1681565b34801561069d57600080fd5b506102566106ac366004611843565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106e357600080fd5b506102c66106f23660046117db565b60146020526000908152604090205460ff1681565b34801561071357600080fd5b50600f546102c69060ff1681565b34801561072d57600080fd5b5061049161073c3660046117db565b610b9d565b34801561074d57600080fd5b50601254610519906001600160a01b031681565b34801561076d57600080fd5b506016546102c69060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610895576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610870918490610ce6565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108a0848484610d20565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109169290916109109190610fbe565b90610fbe565b905090565b60006107e28260001961077b565b6000546001600160a01b0316331461095c5760405162461bcd60e51b81526004016109539061187c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109d05760405162461bcd60e51b81526004016109539061187c565b47336108fc60646109e185856118c7565b6109eb91906118de565b6040518115909202916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a435760405162461bcd60e51b81526004016109539061187c565b306001600160a01b03841603610a9b5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610953565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611900565b3360009081526001602052604090205460ff16610b545760405162461bcd60e51b81526020600482015260066024820152650850db1bdd5960d21b6044820152606401610953565b600a849055600b839055600c829055610b7782610b718686610c87565b90610c87565b600d819055610b87908290611922565b600e5550505050565b60006108a3338484610d20565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016109539061187c565b6001600160a01b038116610c2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610953565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c948385611922565b9050838110156108a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610953565b60008184841115610d0a5760405162461bcd60e51b81526004016109539190611708565b506000610d178486611935565b95945050505050565b601654600090610100900460ff1615610d4557610d3e848484611000565b90506108a3565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8757506001600160a01b03831660009081526001602052604090205460ff16155b15610db85760165460ff16610db85760405162461bcd60e51b81526020600482015260006024820152604401610953565b6001600160a01b03831660009081526014602052604090205460ff168015610de85750601654610100900460ff16155b8015610dfc575060165462010000900460ff165b8015610e1957506017543060009081526006602052604090205410155b15610e2657610e266110e6565b601554158015610e4e57506001600160a01b03831660009081526014602052604090205460ff165b15610e9b576001600160a01b038416600090815260066020526040902054610e925760405162461bcd60e51b81526020600482015260006024820152604401610953565b610e9b43601555565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610ecc918490610ce6565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f1c57506001600160a01b03841660009081526008602052604090205460ff16155b610f265782610f31565b610f318585856114ac565b6001600160a01b038516600090815260066020526040902054909150610f579082610c87565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fab9085815260200190565b60405180910390a3506001949350505050565b60006108a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611051918490610ce6565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110809083610c87565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d49086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260066020526040812054600d54600a549192916111299160029161112391908290879061161b565b9061169d565b905060006111378383610fbe565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061117157611171611948565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ee919061195e565b8160018151811061120157611201611948565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061124790859060009086903090429060040161197b565b600060405180830381600087803b15801561126157600080fd5b505af1158015611275573d6000803e3d6000fd5b5050600a54479250600091506112999061129090600261169d565b600d5490610fbe565b905060006112bb600261112384611123600a548861161b90919063ffffffff16565b905060006112d883611123600b548761161b90919063ffffffff16565b905060006112f584611123600c548861161b90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461134c576040519150601f19603f3d011682016040523d82523d6000602084013e611351565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a9576040519150601f19603f3d011682016040523d82523d6000602084013e6113ae565b606091505b5060009250508915905061149557601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611433573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145891906119ec565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114dd5750600f54610100900460ff165b156114e75750600e545b6001600160a01b03851660009081526014602052604090205460ff1680156115115750600f5460ff165b1561151b5750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155d57506001600160a01b03841660009081526014602052604090205460ff16155b1561158057600f5462010000900460ff161561157c5750600e54611580565b5060005b60006115916064611123868561161b565b306000908152600660205260409020549091506115ae9082610c87565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ff9085815260200190565b60405180910390a36116118482610fbe565b9695505050505050565b60008260000361162d575060006107e2565b600061163983856118c7565b90508261164685836118de565b146108a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610953565b60006108a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116fb5760405162461bcd60e51b81526004016109539190611708565b506000610d1784866118de565b600060208083528351808285015260005b8181101561173557858101830151858201604001528201611719565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176b57600080fd5b50565b6000806040838503121561178157600080fd5b823561178c81611756565b946020939093013593505050565b6000806000606084860312156117af57600080fd5b83356117ba81611756565b925060208401356117ca81611756565b929592945050506040919091013590565b6000602082840312156117ed57600080fd5b81356108a381611756565b60006020828403121561180a57600080fd5b5035919050565b6000806000806080858703121561182757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561185657600080fd5b823561186181611756565b9150602083013561187181611756565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107e2576107e26118b1565b6000826118fb57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561191257600080fd5b815180151581146108a357600080fd5b808201808211156107e2576107e26118b1565b818103818111156107e2576107e26118b1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197057600080fd5b81516108a381611756565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119cb5784516001600160a01b0316835293830193918301916001016119a6565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a0157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f6567c05bce01523dc6abaa5f4d8c0e33749561066b1bf2fcde0d36a6648b87f64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102345760003560e01c8063807c2d9c1161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106d7578063f0ef821f14610707578063f2fde38b14610721578063f887ea4014610741578063ffb54a991461076157600080fd5b8063a9059cbb14610624578063bf56b37114610644578063ca987b0e1461065a578063da00097d14610670578063dd62ed3e1461069157600080fd5b80638da5cb5b116100f25780638da5cb5b1461058157806395d89b411461059f57806398118cb4146105ce578063a5355989146105e4578063a8aa1b311461060457600080fd5b8063807c2d9c146104c95780638637b069146104df578063893d20e8146104ff5780638b42507f146105315780638ba3e2451461056157600080fd5b8063481db7f7116101bc5780637054093311610180578063705409331461042757806370a0823114610446578063715018a61461047c578063787a051b146104935780637d1db4a5146104b357600080fd5b8063481db7f7146103825780634a74bb02146103bb578063571ac8b0146103db5780636827e764146103fb5780636b67c4df1461041157600080fd5b80631df4ccfc116102035780631df4ccfc146102eb57806323b872dd146103015780632b112e4914610321578063313ce567146103365780633f4218e01461035257600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a657806318160ddd146102d657600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600b81526a21b637bab21021b430b4b760a91b60208201525b6040516102609190611708565b3480156102b257600080fd5b506102c66102c136600461176e565b61077b565b6040519015158152602001610260565b3480156102e257600080fd5b50600354610256565b3480156102f757600080fd5b50610256600d5481565b34801561030d57600080fd5b506102c661031c36600461179a565b6107e8565b34801561032d57600080fd5b506102566108aa565b34801561034257600080fd5b5060405160128152602001610260565b34801561035e57600080fd5b506102c661036d3660046117db565b60086020526000908152604090205460ff1681565b34801561038e57600080fd5b506102c661039d3660046117db565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103c757600080fd5b506016546102c69062010000900460ff1681565b3480156103e757600080fd5b506102c66103f63660046117db565b61091b565b34801561040757600080fd5b50610256600c5481565b34801561041d57600080fd5b50610256600b5481565b34801561043357600080fd5b50600f546102c690610100900460ff1681565b34801561045257600080fd5b506102566104613660046117db565b6001600160a01b031660009081526006602052604090205490565b34801561048857600080fd5b50610491610929565b005b34801561049f57600080fd5b506104916104ae3660046117f8565b6109a6565b3480156104bf57600080fd5b5061025660045481565b3480156104d557600080fd5b5061025660055481565b3480156104eb57600080fd5b506102c66104fa36600461176e565b610a18565b34801561050b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b34801561053d57600080fd5b506102c661054c3660046117db565b60096020526000908152604090205460ff1681565b34801561056d57600080fd5b5061049161057c366004611811565b610b0c565b34801561058d57600080fd5b506000546001600160a01b0316610519565b3480156105ab57600080fd5b5060408051808201909152600681526521a1a420a4a760d11b6020820152610299565b3480156105da57600080fd5b50610256600a5481565b3480156105f057600080fd5b50600f546102c69062010000900460ff1681565b34801561061057600080fd5b50601354610519906001600160a01b031681565b34801561063057600080fd5b506102c661063f36600461176e565b610b90565b34801561065057600080fd5b5061025660155481565b34801561066657600080fd5b50610256600e5481565b34801561067c57600080fd5b506016546102c6906301000000900460ff1681565b34801561069d57600080fd5b506102566106ac366004611843565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106e357600080fd5b506102c66106f23660046117db565b60146020526000908152604090205460ff1681565b34801561071357600080fd5b50600f546102c69060ff1681565b34801561072d57600080fd5b5061049161073c3660046117db565b610b9d565b34801561074d57600080fd5b50601254610519906001600160a01b031681565b34801561076d57600080fd5b506016546102c69060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610895576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610870918490610ce6565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108a0848484610d20565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109169290916109109190610fbe565b90610fbe565b905090565b60006107e28260001961077b565b6000546001600160a01b0316331461095c5760405162461bcd60e51b81526004016109539061187c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109d05760405162461bcd60e51b81526004016109539061187c565b47336108fc60646109e185856118c7565b6109eb91906118de565b6040518115909202916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a435760405162461bcd60e51b81526004016109539061187c565b306001600160a01b03841603610a9b5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610953565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611900565b3360009081526001602052604090205460ff16610b545760405162461bcd60e51b81526020600482015260066024820152650850db1bdd5960d21b6044820152606401610953565b600a849055600b839055600c829055610b7782610b718686610c87565b90610c87565b600d819055610b87908290611922565b600e5550505050565b60006108a3338484610d20565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016109539061187c565b6001600160a01b038116610c2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610953565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c948385611922565b9050838110156108a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610953565b60008184841115610d0a5760405162461bcd60e51b81526004016109539190611708565b506000610d178486611935565b95945050505050565b601654600090610100900460ff1615610d4557610d3e848484611000565b90506108a3565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8757506001600160a01b03831660009081526001602052604090205460ff16155b15610db85760165460ff16610db85760405162461bcd60e51b81526020600482015260006024820152604401610953565b6001600160a01b03831660009081526014602052604090205460ff168015610de85750601654610100900460ff16155b8015610dfc575060165462010000900460ff165b8015610e1957506017543060009081526006602052604090205410155b15610e2657610e266110e6565b601554158015610e4e57506001600160a01b03831660009081526014602052604090205460ff165b15610e9b576001600160a01b038416600090815260066020526040902054610e925760405162461bcd60e51b81526020600482015260006024820152604401610953565b610e9b43601555565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610ecc918490610ce6565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f1c57506001600160a01b03841660009081526008602052604090205460ff16155b610f265782610f31565b610f318585856114ac565b6001600160a01b038516600090815260066020526040902054909150610f579082610c87565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fab9085815260200190565b60405180910390a3506001949350505050565b60006108a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611051918490610ce6565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110809083610c87565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d49086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260066020526040812054600d54600a549192916111299160029161112391908290879061161b565b9061169d565b905060006111378383610fbe565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061117157611171611948565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ee919061195e565b8160018151811061120157611201611948565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061124790859060009086903090429060040161197b565b600060405180830381600087803b15801561126157600080fd5b505af1158015611275573d6000803e3d6000fd5b5050600a54479250600091506112999061129090600261169d565b600d5490610fbe565b905060006112bb600261112384611123600a548861161b90919063ffffffff16565b905060006112d883611123600b548761161b90919063ffffffff16565b905060006112f584611123600c548861161b90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d806000811461134c576040519150601f19603f3d011682016040523d82523d6000602084013e611351565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a9576040519150601f19603f3d011682016040523d82523d6000602084013e6113ae565b606091505b5060009250508915905061149557601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611433573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145891906119ec565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114dd5750600f54610100900460ff165b156114e75750600e545b6001600160a01b03851660009081526014602052604090205460ff1680156115115750600f5460ff165b1561151b5750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155d57506001600160a01b03841660009081526014602052604090205460ff16155b1561158057600f5462010000900460ff161561157c5750600e54611580565b5060005b60006115916064611123868561161b565b306000908152600660205260409020549091506115ae9082610c87565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ff9085815260200190565b60405180910390a36116118482610fbe565b9695505050505050565b60008260000361162d575060006107e2565b600061163983856118c7565b90508261164685836118de565b146108a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610953565b60006108a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116fb5760405162461bcd60e51b81526004016109539190611708565b506000610d1784866118de565b600060208083528351808285015260005b8181101561173557858101830151858201604001528201611719565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176b57600080fd5b50565b6000806040838503121561178157600080fd5b823561178c81611756565b946020939093013593505050565b6000806000606084860312156117af57600080fd5b83356117ba81611756565b925060208401356117ca81611756565b929592945050506040919091013590565b6000602082840312156117ed57600080fd5b81356108a381611756565b60006020828403121561180a57600080fd5b5035919050565b6000806000806080858703121561182757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561185657600080fd5b823561186181611756565b9150602083013561187181611756565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107e2576107e26118b1565b6000826118fb57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561191257600080fd5b815180151581146108a357600080fd5b808201808211156107e2576107e26118b1565b818103818111156107e2576107e26118b1565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197057600080fd5b81516108a381611756565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119cb5784516001600160a01b0316835293830193918301916001016119a6565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a0157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f6567c05bce01523dc6abaa5f4d8c0e33749561066b1bf2fcde0d36a6648b87f64736f6c63430008110033
Deployed Bytecode Sourcemap
5318:10742:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6941:58;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6941:58:0;;;;;;;;8330:94;;;;;;;;;;-1:-1:-1;8411:5:0;;;;;;;;;;;;-1:-1:-1;;;8411:5:0;;;;8330:94;;;;;;;:::i;9325:248::-;;;;;;;;;;-1:-1:-1;9325:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9325:248:0;1205:187:1;8640:102:0;;;;;;;;;;-1:-1:-1;8722:12:0;;8640:102;;6331:27;;;;;;;;;;;;;;;;11815:422;;;;;;;;;;-1:-1:-1;11815:422:0;;;;;:::i;:::-;;:::i;9175:142::-;;;;;;;;;;;;;:::i;8538:94::-;;;;;;;;;;-1:-1:-1;8538:94:0;;5784:2;2000:36:1;;1988:2;1973:18;8538:94:0;1858:184:1;6115:43:0;;;;;;;;;;-1:-1:-1;6115:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4767:95;;;;;;;;;;-1:-1:-1;4767:95:0;;;;;:::i;:::-;-1:-1:-1;;;;;4842:12:0;4818:4;4842:12;;;:7;:12;;;;;;;;;4767:95;6840:40;;;;;;;;;;-1:-1:-1;6840:40:0;;;;;;;;;;;10492:122;;;;;;;;;;-1:-1:-1;10492:122:0;;;;;:::i;:::-;;:::i;6297:25::-;;;;;;;;;;;;;;;;6259:31;;;;;;;;;;;;;;;;6446:30;;;;;;;;;;-1:-1:-1;6446:30:0;;;;;;;;;;;8852:119;;;;;;;;;;-1:-1:-1;8852:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8945:18:0;8918:7;8945:18;;;:9;:18;;;;;;;8852:119;4874:148;;;;;;;;;;;;;:::i;:::-;;10281:203;;;;;;;;;;-1:-1:-1;10281:203:0;;;;;:::i;:::-;;:::i;5861:56::-;;;;;;;;;;;;;;;;5924:54;;;;;;;;;;;;;;;;9986:287;;;;;;;;;;-1:-1:-1;9986:287:0;;;;;:::i;:::-;;:::i;8750:94::-;;;;;;;;;;-1:-1:-1;8802:7:0;4535:6;-1:-1:-1;;;;;4535:6:0;8750:94;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8750:94:0;2484:203:1;6165:47:0;;;;;;;;;;-1:-1:-1;6165:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9581:395;;;;;;;;;;-1:-1:-1;9581:395:0;;;;;:::i;:::-;;:::i;4470:79::-;;;;;;;;;;-1:-1:-1;4508:7:0;4535:6;-1:-1:-1;;;;;4535:6:0;4470:79;;8432:98;;;;;;;;;;-1:-1:-1;8515:7:0;;;;;;;;;;;;-1:-1:-1;;;8515:7:0;;;;8432:98;;6221:31;;;;;;;;;;;;;;;;6483:34;;;;;;;;;;-1:-1:-1;6483:34:0;;;;;;;;;;;6660:19;;;;;;;;;;-1:-1:-1;6660:19:0;;;;-1:-1:-1;;;;;6660:19:0;;;11210:188;;;;;;;;;;-1:-1:-1;11210:188:0;;;;;:::i;:::-;;:::i;6733:25::-;;;;;;;;;;;;;;;;6365:36;;;;;;;;;;;;;;;;6887:45;;;;;;;;;;-1:-1:-1;6887:45:0;;;;;;;;;;;8979:188;;;;;;;;;;-1:-1:-1;8979:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;9131:19:0;;;9099:7;9131:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8979:188;6686:38;;;;;;;;;;-1:-1:-1;6686:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6410:29;;;;;;;;;;-1:-1:-1;6410:29:0;;;;;;;;5030:281;;;;;;;;;;-1:-1:-1;5030:281:0;;;;;:::i;:::-;;:::i;6630:23::-;;;;;;;;;;-1:-1:-1;6630:23:0;;;;-1:-1:-1;;;;;6630:23:0;;;6767:30;;;;;;;;;;-1:-1:-1;6767:30:0;;;;;;;;9325:248;9461:10;9427:4;9449:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9449:32:0;;;;;;;;;;:41;;;9506:37;9427:4;;9449:32;;9506:37;;;;9484:6;160:25:1;;148:2;133:18;;14:177;9506:37:0;;;;;;;;-1:-1:-1;9561:4:0;9325:248;;;;;:::o;11815:422::-;-1:-1:-1;;;;;11970:19:0;;11949:4;11970:19;;;:11;:19;;;;;;;;11990:10;11970:31;;;;;;;;-1:-1:-1;;11970:52:0;11966:206;;12073:87;;;;;;;;;;;-1:-1:-1;;;12073:87:0;;;;;;;;-1:-1:-1;;;;;12073:19:0;;-1:-1:-1;12073:19:0;;;:11;:19;;;;;12093:10;12073:31;;;;;;;;;;:87;;12127:6;;12073:53;:87::i;:::-;-1:-1:-1;;;;;12039:19:0;;;;;;:11;:19;;;;;;;;12059:10;12039:31;;;;;;;:121;11966:206;12189:40;12203:6;12211:9;12222:6;12189:13;:40::i;:::-;12182:47;;11815:422;;;;;;:::o;9175:142::-;8945:9;:18;;;;5536:42;9228:7;8945:18;;;;;9255:12;;9228:7;;9255:54;;8945:18;;9255:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;9248:61;;9175:142;:::o;10492:122::-;10547:4;10571:35;10579:7;-1:-1:-1;;10571:7:0;:35::i;4874:148::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3895:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;;;;;;;;;4981:1:::1;4965:6:::0;;4944:40:::1;::::0;-1:-1:-1;;;;;4965:6:0;;::::1;::::0;4944:40:::1;::::0;4981:1;;4944:40:::1;5012:1;4995:19:::0;;-1:-1:-1;;;;;;4995:19:0::1;::::0;;4874:148::o;10281:203::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3895:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;10378:21:::1;10418:10;10410:66;10472:3;10440:28;10452:16:::0;10378:21;10440:28:::1;:::i;:::-;10439:36;;;;:::i;:::-;10410:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10347:137;10281:203:::0;:::o;9986:287::-;10098:12;4597:6;;-1:-1:-1;;;;;4597:6:0;3895:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;10160:4:::1;-1:-1:-1::0;;;;;10136:29:0;::::1;::::0;10128:70:::1;;;::::0;-1:-1:-1;;;10128:70:0;;4790:2:1;10128:70:0::1;::::0;::::1;4772:21:1::0;4829:2;4809:18;;;4802:30;4868;4848:18;;;4841:58;4916:18;;10128:70:0::1;4588:352:1::0;10128:70:0::1;10216:49;::::0;-1:-1:-1;;;10216:49:0;;10246:10:::1;10216:49;::::0;::::1;5119:51:1::0;5186:18;;;5179:34;;;-1:-1:-1;;;;;10216:29:0;::::1;::::0;::::1;::::0;5092:18:1;;10216:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9581:395::-:0;4726:10;4818:4;4842:12;;;:7;:12;;;;;;;;4710:38;;;;-1:-1:-1;;;4710:38:0;;5708:2:1;4710:38:0;;;5690:21:1;5747:1;5727:18;;;5720:29;-1:-1:-1;;;5765:18:1;;;5758:36;5811:18;;4710:38:0;5506:329:1;4710:38:0;9754:12:::1;:24:::0;;;9789:12:::1;:30:::0;;;9830:6:::1;:18:::0;;;9872:42:::1;9839:9:::0;9872:30:::1;9769:9:::0;9804:15;9872:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:::-;9861:8;:53:::0;;;9945:23:::1;::::0;9956:12;;9945:23:::1;:::i;:::-;9925:17;:43:::0;-1:-1:-1;;;;9581:395:0:o;11210:188::-;11317:4;11346:44;11360:10;11372:9;11383:6;11346:13;:44::i;5030:281::-;4597:6;;-1:-1:-1;;;;;4597:6:0;3895:10;4597:22;4589:67;;;;-1:-1:-1;;;4589:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5133:22:0;::::1;5111:110;;;::::0;-1:-1:-1;;;5111:110:0;;6172:2:1;5111:110:0::1;::::0;::::1;6154:21:1::0;6211:2;6191:18;;;6184:30;6250:34;6230:18;;;6223:62;-1:-1:-1;;;6301:18:1;;;6294:36;6347:19;;5111:110:0::1;5970:402:1::0;5111:110:0::1;5258:6;::::0;;5237:38:::1;::::0;-1:-1:-1;;;;;5237:38:0;;::::1;::::0;5258:6;::::1;::::0;5237:38:::1;::::0;::::1;5286:6;:17:::0;;-1:-1:-1;;;;;;5286:17:0::1;-1:-1:-1::0;;;;;5286:17:0;;;::::1;::::0;;;::::1;::::0;;5030:281::o;655:179::-;713:7;;745:5;749:1;745;:5;:::i;:::-;733:17;;774:1;769;:6;;761:46;;;;-1:-1:-1;;;761:46:0;;6579:2:1;761:46:0;;;6561:21:1;6618:2;6598:18;;;6591:30;6657:29;6637:18;;;6630:57;6704:18;;761:46:0;6377:351:1;986:224:0;1106:7;1142:12;1134:6;;;;1126:29;;;;-1:-1:-1;;;1126:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1166:9:0;1178:5;1182:1;1178;:5;:::i;:::-;1166:17;986:224;-1:-1:-1;;;;;986:224:0:o;12245:1171::-;12392:16;;12371:4;;12392:16;;;;;12388:97;;;12432:41;12447:6;12455:9;12466:6;12432:14;:41::i;:::-;12425:48;;;;12388:97;-1:-1:-1;;;;;12500:15:0;;;;;;:7;:15;;;;;;;;12499:16;:39;;;;-1:-1:-1;;;;;;12520:18:0;;;;;;:7;:18;;;;;;;;12519:19;12499:39;12495:96;;;12563:11;;;;12555:24;;;;-1:-1:-1;;;12555:24:0;;7068:2:1;12555:24:0;;;7050:21:1;-1:-1:-1;7087:18:1;;;7080:29;7126:18;;12555:24:0;6866:284:1;12555:24:0;-1:-1:-1;;;;;12619:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;12654:16:0;;;;;;;12653:17;12619:51;:89;;;;-1:-1:-1;12687:21:0;;;;;;;12619:89;:147;;;;-1:-1:-1;12753:13:0;;12743:4;12725:24;;;;:9;:24;;;;;;:41;;12619:147;12601:221;;;12793:17;:15;:17::i;:::-;10689:10;;:15;;;12836:32;;-1:-1:-1;;;;;;12851:17:0;;;;;;:6;:17;;;;;;;;12836:32;12832:122;;;-1:-1:-1;;;;;12893:17:0;;12913:1;12893:17;;;:9;:17;;;;;;12885:34;;;;-1:-1:-1;;;12885:34:0;;7068:2:1;12885:34:0;;;7050:21:1;-1:-1:-1;7087:18:1;;;7080:29;7126:18;;12885:34:0;6866:284:1;12885:34:0;12934:8;10771:12;10758:10;:25;10720:71;12934:8;13013:33;;;;;;;;;-1:-1:-1;13013:33:0;;;-1:-1:-1;;;;;13013:17:0;;;;:9;:17;;;;;;;;:33;;13035:6;;13013:21;:33::i;:::-;-1:-1:-1;;;;;12993:17:0;;;;;;:9;:17;;;;;;;;:53;;;;13139:11;:19;;;;;;;;13138:20;:47;;;;-1:-1:-1;;;;;;13163:22:0;;;;;;:11;:22;;;;;;;;13162:23;13138:47;:119;;13251:6;13138:119;;;13201:34;13209:6;13217:9;13228:6;13201:7;:34::i;:::-;-1:-1:-1;;;;;13291:20:0;;;;;;:9;:20;;;;;;13116:141;;-1:-1:-1;13291:37:0;;13116:141;13291:24;:37::i;:::-;-1:-1:-1;;;;;13268:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13346:40;;;;;;;;;;13374:11;160:25:1;;148:2;133:18;;14:177;13346:40:0;;;;;;;;-1:-1:-1;13404:4:0;;12245:1171;-1:-1:-1;;;;12245:1171:0:o;842:136::-;900:7;927:43;931:1;934;927:43;;;;;;;;;;;;;;;;;:3;:43::i;11406:401::-;11570:90;;;;;;;;;;;-1:-1:-1;;;11570:90:0;;;;;;;;-1:-1:-1;;;;;11570:17:0;;11533:4;11570:17;;;:9;:17;;;;;;;:90;;11606:6;;11570:21;:90::i;:::-;-1:-1:-1;;;;;11550:17:0;;;;;;;:9;:17;;;;;;:110;;;;11694:20;;;;;;;:32;;11719:6;11694:24;:32::i;:::-;-1:-1:-1;;;;;11671:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11742:35;;;;;;;;;;11770:6;160:25:1;;148:2;133:18;;14:177;11742:35:0;;;;;;;;-1:-1:-1;11795:4:0;11406:401;;;;;:::o;14279:1776::-;7106:16;:23;;-1:-1:-1;;7106:23:0;;;;;14382:4:::1;7106:23:::0;14364:24;;;:9:::1;:24;::::0;;;;;14491:8:::1;::::0;14459:12:::1;::::0;14364:24;;7106:23;14425:96:::1;::::0;14519:1:::1;::::0;14425:75:::1;::::0;14491:8;14425:75;;14364:24;;14425:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;14399:122:::0;-1:-1:-1;14532:20:0::1;14555:36;:15:::0;14399:122;14555:19:::1;:36::i;:::-;14628:16;::::0;;14642:1:::1;14628:16:::0;;;;;::::1;::::0;;14532:59;;-1:-1:-1;14604:21:0::1;::::0;14628:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14628:16:0::1;14604:40;;14673:4;14655;14660:1;14655:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14655:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14699:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14699:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14655:7;;14699:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14689:4;14694:1;14689:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14689:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14725:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14725:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14797:12;;14725:6:::1;::::0;14840:4;;14867::::1;::::0;14887:15:::1;::::0;14725:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15015:12:0::1;::::0;14946:21:::1;::::0;-1:-1:-1;14926:17:0::1;::::0;-1:-1:-1;15002:33:0::1;::::0;15015:19:::1;::::0;15032:1:::1;15015:16;:19::i;:::-;15002:8;::::0;;:12:::1;:33::i;:::-;14980:55;;15048:26;15077:93;15168:1;15077:72;15137:11;15077:41;15105:12;;15077:9;:27;;:41;;;;:::i;:93::-;15048:122;;15181:26;15210:68;15256:11;15210:27;15224:12;;15210:9;:13;;:27;;;;:::i;:68::-;15181:97;;15289:20;15312:38;15338:11;15312:21;15326:6;;15312:9;:13;;:21;;;;:::i;:38::-;15394:14;::::0;15386:108:::1;::::0;15289:61;;-1:-1:-1;15364:16:0::1;::::0;-1:-1:-1;;;;;15394:14:0;;::::1;::::0;15474:5:::1;::::0;15436:18;;15364:16;15386:108;15364:16;15386:108;15436:18;15394:14;15474:5;15386:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15563:11:0::1;::::0;15555:99:::1;::::0;15519:5:::1;::::0;-1:-1:-1;;;;;;15563:11:0;;::::1;::::0;-1:-1:-1;15634:5:0::1;::::0;15602:12;;15519:5;15555:99;15519:5;15555:99;15602:12;15563:11;15634:5;15555:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15679:5:0::1;::::0;-1:-1:-1;;15701:19:0;;;-1:-1:-1;15697:351:0::1;;15737:6;::::0;15911:8:::1;::::0;15737:231:::1;::::0;-1:-1:-1;;;15737:231:0;;15813:4:::1;15737:231;::::0;::::1;9211:34:1::0;9261:18;;;9254:34;;;-1:-1:-1;9304:18:1;;;9297:34;;;9347:18;;;9340:34;-1:-1:-1;;;;;15911:8:0;;;::::1;::::0;::::1;9390:19:1::0;;;9383:44;15938:15:0::1;9443:19:1::0;;;9436:35;15737:6:0;::::1;::::0;:22:::1;::::0;15767:18;;9145:19:1;;15737:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15988:48:0::1;::::0;;9967:25:1;;;10023:2;10008:18;;10001:34;;;15988:48:0::1;::::0;-1:-1:-1;9940:18:1;15988:48:0::1;;;;;;;15697:351;-1:-1:-1::0;;7152:16:0;:24;;-1:-1:-1;;7152:24:0;;;-1:-1:-1;;;;;;;;14279:1776:0:o;13424:847::-;-1:-1:-1;;;;;13604:17:0;;13544:7;13604:17;;;:6;:17;;;;;;13544:7;;13604:17;;:32;;;;-1:-1:-1;13625:11:0;;;;;;;13604:32;13600:98;;;-1:-1:-1;13669:17:0;;13600:98;-1:-1:-1;;;;;13712:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;13730:10:0;;;;13712:28;13708:85;;;-1:-1:-1;13773:8:0;;13708:85;-1:-1:-1;;;;;13808:14:0;;;;;;:6;:14;;;;;;;;13807:15;:37;;;;-1:-1:-1;;;;;;13827:17:0;;;;;;:6;:17;;;;;;;;13826:18;13807:37;13803:216;;;13865:15;;;;;;;13861:147;;;-1:-1:-1;13917:17:0;;13861:147;;;-1:-1:-1;13991:1:0;13861:147;14031:17;14051:34;14081:3;14051:25;:6;14062:13;14051:10;:25::i;:34::-;14143:4;14125:24;;;;:9;:24;;;;;;14031:54;;-1:-1:-1;14125:39:0;;14031:54;14125:28;:39::i;:::-;14116:4;14098:24;;;;:9;:24;;;;;;;:66;;;;14180:42;;-1:-1:-1;;;;;14180:42:0;;;;;;;14212:9;160:25:1;;148:2;133:18;;14:177;14180:42:0;;;;;;;;14242:21;:6;14253:9;14242:10;:21::i;:::-;14235:28;13424:847;-1:-1:-1;;;;;;13424:847:0:o;1218:246::-;1276:7;1300:1;1305;1300:6;1296:47;;-1:-1:-1;1330:1:0;1323:8;;1296:47;1353:9;1365:5;1369:1;1365;:5;:::i;:::-;1353:17;-1:-1:-1;1398:1:0;1389:5;1393:1;1353:17;1389:5;:::i;:::-;:10;1381:56;;;;-1:-1:-1;;;1381:56:0;;10248:2:1;1381:56:0;;;10230:21:1;10287:2;10267:18;;;10260:30;10326:34;10306:18;;;10299:62;-1:-1:-1;;;10377:18:1;;;10370:31;10418:19;;1381:56:0;10046:397:1;1472:132:0;1530:7;1557:39;1561:1;1564;1557:39;;;;;;;;;;;;;;;;;1732:7;1767:12;1760:5;1752:28;;;;-1:-1:-1;;;1752:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1791:9:0;1803:5;1807:1;1803;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2692:385::-;2778:6;2786;2794;2802;2855:3;2843:9;2834:7;2830:23;2826:33;2823:53;;;2872:1;2869;2862:12;2823:53;-1:-1:-1;;2895:23:1;;;2965:2;2950:18;;2937:32;;-1:-1:-1;3016:2:1;3001:18;;2988:32;;3067:2;3052:18;3039:32;;-1:-1:-1;2692:385:1;-1:-1:-1;2692:385:1:o;3082:388::-;3150:6;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:52;;;3227:1;3224;3217:12;3179:52;3266:9;3253:23;3285:31;3310:5;3285:31;:::i;:::-;3335:5;-1:-1:-1;3392:2:1;3377:18;;3364:32;3405:33;3364:32;3405:33;:::i;:::-;3457:7;3447:17;;;3082:388;;;;;:::o;3700:356::-;3902:2;3884:21;;;3921:18;;;3914:30;3980:34;3975:2;3960:18;;3953:62;4047:2;4032:18;;3700:356::o;4061:127::-;4122:10;4117:3;4113:20;4110:1;4103:31;4153:4;4150:1;4143:15;4177:4;4174:1;4167:15;4193:168;4266:9;;;4297;;4314:15;;;4308:22;;4294:37;4284:71;;4335:18;;:::i;4366:217::-;4406:1;4432;4422:132;;4476:10;4471:3;4467:20;4464:1;4457:31;4511:4;4508:1;4501:15;4539:4;4536:1;4529:15;4422:132;-1:-1:-1;4568:9:1;;4366:217::o;5224:277::-;5291:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:52;;;5360:1;5357;5350:12;5312:52;5392:9;5386:16;5445:5;5438:13;5431:21;5424:5;5421:32;5411:60;;5467:1;5464;5457:12;5840:125;5905:9;;;5926:10;;;5923:36;;;5939:18;;:::i;6733:128::-;6800:9;;;6821:11;;;6818:37;;;6835:18;;:::i;7287:127::-;7348:10;7343:3;7339:20;7336:1;7329:31;7379:4;7376:1;7369:15;7403:4;7400:1;7393:15;7419:251;7489:6;7542:2;7530:9;7521:7;7517:23;7513:32;7510:52;;;7558:1;7555;7548:12;7510:52;7590:9;7584:16;7609:31;7634:5;7609:31;:::i;7675:980::-;7937:4;7985:3;7974:9;7970:19;8016:6;8005:9;7998:25;8042:2;8080:6;8075:2;8064:9;8060:18;8053:34;8123:3;8118:2;8107:9;8103:18;8096:31;8147:6;8182;8176:13;8213:6;8205;8198:22;8251:3;8240:9;8236:19;8229:26;;8290:2;8282:6;8278:15;8264:29;;8311:1;8321:195;8335:6;8332:1;8329:13;8321:195;;;8400:13;;-1:-1:-1;;;;;8396:39:1;8384:52;;8491:15;;;;8456:12;;;;8432:1;8350:9;8321:195;;;-1:-1:-1;;;;;;;8572:32:1;;;;8567:2;8552:18;;8545:60;-1:-1:-1;;;8636:3:1;8621:19;8614:35;8533:3;7675:980;-1:-1:-1;;;7675:980:1:o;9482:306::-;9570:6;9578;9586;9639:2;9627:9;9618:7;9614:23;9610:32;9607:52;;;9655:1;9652;9645:12;9607:52;9684:9;9678:16;9668:26;;9734:2;9723:9;9719:18;9713:25;9703:35;;9778:2;9767:9;9763:18;9757:25;9747:35;;9482:306;;;;;:::o
Swarm Source
ipfs://f6567c05bce01523dc6abaa5f4d8c0e33749561066b1bf2fcde0d36a6648b87f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.