ERC-20
Overview
Max Total Supply
1,000,000,000 DSF
Holders
72
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,404,600.538706878 DSFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DSF
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-19 */ // SPDX-License-Identifier: MIT /* DexSniffer offers a novel ETH pair discovery Bot equipped with an integrated contract scanner and personalized filters, enabling you to pinpoint the precise tokens you seek. Website: https://dexsniffer.info Twitter: https://twitter.com/DexSniffer_Bot Telegram: https://t.me/DexSniffer_Bot_ERC Bot: https://t.me/DexSnifferBot */ pragma solidity 0.8.21; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { 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 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); } interface IUniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));} event OwnershipTransferred(address owner); } contract DSF is IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"DexSniffer Trading Bot"; string private constant _symbol = unicode"DSF"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExcluded; IRouter router; address public pair; bool private isEnabled = false; bool private swapEnabled = true; uint256 private swappedTimes; bool private swapping; uint256 swapsAfter; uint256 private feeSwapLimit = ( _totalSupply * 1000 ) / 100000; uint256 private feeSwapMin = ( _totalSupply * 10 ) / 100000; modifier lockSwap {swapping = true; _; swapping = false;} uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private developmentFee = 100; uint256 private burnFee = 0; uint256 private buyFee = 1500; uint256 private sellFee = 1500; uint256 private transferFee = 1500; uint256 private denominator = 10000; uint256 public maxTransfer = ( _totalSupply * 200 ) / 10000; uint256 public maxBuy = ( _totalSupply * 200 ) / 10000; uint256 public maxHolding = ( _totalSupply * 200 ) / 10000; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal devAddress = 0x3632d347dbda2021AE9BBfb39AC84E9a61B51B95; address internal taxAddress = 0x3632d347dbda2021AE9BBfb39AC84E9a61B51B95; address internal lpAddress = 0x3632d347dbda2021AE9BBfb39AC84E9a61B51B95; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExcluded[lpAddress] = true; isFeeExcluded[taxAddress] = true; isFeeExcluded[devAddress] = true; isFeeExcluded[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} 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 balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function startTrading() external onlyOwner {isEnabled = true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function getOwner() external view override returns (address) { return owner; } function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner { uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000); maxTransfer = newTx; maxBuy = newTransfer; maxHolding = newWallet; uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%"); } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, lpAddress, block.timestamp); } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return buyFee;} return transferFee; } function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= feeSwapMin; bool aboveThreshold = balanceOf(address(this)) >= feeSwapLimit; return !swapping && swapEnabled && isEnabled && aboveMin && !isFeeExcluded[sender] && recipient == pair && swappedTimes >= swapsAfter && aboveThreshold; } 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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function swapBack(uint256 tokens) private lockSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(taxAddress).transfer(marketingAmt);} uint256 contractBalance = address(this).balance; if(contractBalance > uint256(0)){payable(devAddress).transfer(contractBalance);} } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if (isFeeExcluded[recipient]) {return maxTransfer;} if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner { swapsAfter = _swapAmount; feeSwapLimit = _totalSupply.mul(_swapThreshold).div(uint256(100000)); feeSwapMin = _totalSupply.mul(_minTokenAmount).div(uint256(100000)); } function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; buyFee = _total; sellFee = _sell; transferFee = _trans; require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%"); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); if(!isFeeExcluded[sender] && !isFeeExcluded[recipient]){require(isEnabled, "isEnabled");} if(!isFeeExcluded[sender] && !isFeeExcluded[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= maxHolding, "Exceeds maximum wallet amount.");} if(sender != pair){require(amount <= maxBuy || isFeeExcluded[sender] || isFeeExcluded[recipient], "TX Limit Exceeded");} require(amount <= maxTransfer || isFeeExcluded[sender] || isFeeExcluded[recipient], "TX Limit Exceeded"); if(recipient == pair && !isFeeExcluded[sender]){swappedTimes += uint256(1);} if(shouldContractSwap(sender, recipient, amount)){swapBack(feeSwapLimit); swappedTimes = uint256(0);} _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = !isFeeExcluded[sender] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } }
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":"address","name":"owner","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransfer","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a620004af565b6200002290633b9aca00620004c6565b60018190556006805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004c6565b6200005a9190620004e0565b600a55620186a0600154600a620000729190620004c6565b6200007e9190620004e0565b600b555f600c555f600d556064600e555f600f556105dc6010556105dc6011556105dc60125561271060135561271060015460c8620000be9190620004c6565b620000ca9190620004e0565b60145561271060015460c8620000e19190620004c6565b620000ed9190620004e0565b60155561271060015460c8620001049190620004c6565b620001109190620004e0565b60165560178054733632d347dbda2021ae9bbfb39ac84e9a61b51b956001600160a01b03199182168117909255601880548216831790556019805490911690911790553480156200015f575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ea919062000500565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000236573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025c919062000500565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cd919062000500565b600580546001600160a01b038581166001600160a01b03199283161790925560068054848416921691909117905560195481165f908152600460209081526040808320805460ff19908116600190811790925560185486168552828520805482168317905560175490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000528565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f457815f1904821115620003d857620003d8620003a0565b80851615620003e657918102915b93841c9390800290620003b9565b509250929050565b5f826200040c57506001620004a9565b816200041a57505f620004a9565b81600181146200043357600281146200043e576200045e565b6001915050620004a9565b60ff841115620004525762000452620003a0565b50506001821b620004a9565b5060208310610133831016604e8410600b841016171562000483575081810a620004a9565b6200048f8383620003b4565b805f1904821115620004a557620004a5620003a0565b0290505b92915050565b5f620004bf60ff841683620003fc565b9392505050565b8082028115828204841417620004a957620004a9620003a0565b5f82620004fb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000511575f80fd5b81516001600160a01b0381168114620004bf575f80fd5b6118c080620005365f395ff3fe608060405260043610610134575f3560e01c8063893d20e8116100a8578063a9059cbb1161006d578063a9059cbb14610387578063bca238aa146103a6578063cb7f97d7146103d4578063dd62ed3e146103f3578063ed233ee914610437578063f2fde38b1461044c575f80fd5b8063893d20e8146102cf57806395d89b41146102ff5780639cc353511461032a5780639d8740cb14610349578063a8aa1b3114610368575f80fd5b80632f54bf6e116100f95780632f54bf6e14610215578063313ce56714610242578063333e6f061461025d57806370a082311461027257806370db69d6146102a6578063715018a6146102bb575f80fd5b806306fdde031461013f578063095ea7b31461018f57806318160ddd146101be57806323b872dd146101e0578063293230b8146101ff575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601681527511195e14db9a5999995c88151c98591a5b99c8109bdd60521b60208201525b604051610186919061157d565b60405180910390f35b34801561019a575f80fd5b506101ae6101a93660046115df565b61046b565b6040519015158152602001610186565b3480156101c9575f80fd5b506101d2610481565b604051908152602001610186565b3480156101eb575f80fd5b506101ae6101fa366004611609565b6104f1565b34801561020a575f80fd5b50610213610559565b005b348015610220575f80fd5b506101ae61022f366004611647565b5f546001600160a01b0391821691161490565b34801561024d575f80fd5b5060405160098152602001610186565b348015610268575f80fd5b506101d260165481565b34801561027d575f80fd5b506101d261028c366004611647565b6001600160a01b03165f9081526002602052604090205490565b3480156102b1575f80fd5b506101d260155481565b3480156102c6575f80fd5b506102136105a0565b3480156102da575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610186565b34801561030a575f80fd5b506040805180820190915260038152622229a360e91b6020820152610179565b348015610335575f80fd5b50610213610344366004611662565b61060d565b348015610354575f80fd5b50610213610363366004611662565b610749565b348015610373575f80fd5b506006546102e7906001600160a01b031681565b348015610392575f80fd5b506101ae6103a13660046115df565b6107ae565b3480156103b1575f80fd5b506101ae6103c0366004611647565b60046020525f908152604090205460ff1681565b3480156103df575f80fd5b506102136103ee36600461168b565b6107ba565b3480156103fe575f80fd5b506101d261040d3660046116d2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610442575f80fd5b506101d260145481565b348015610457575f80fd5b50610213610466366004611647565b6108ae565b5f61047733848461092a565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104ec9290916104e69190610a4d565b90610a4d565b905090565b5f6104fd848484610a58565b61054e843361054985604051806060016040528060288152602001611863602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f94565b61092a565b5060015b9392505050565b5f546001600160a01b0316331461058b5760405162461bcd60e51b815260040161058290611709565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260040161058290611709565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106365760405162461bcd60e51b815260040161058290611709565b5f61065861271061065286600154610fbf90919063ffffffff16565b90610fca565b90505f61067661271061065286600154610fbf90919063ffffffff16565b90505f61069461271061065286600154610fbf90919063ffffffff16565b60148490556015839055601681905590505f6106bf6103e861065260056106b9610481565b90610fbf565b90508084101580156106d15750808310155b80156106dd5750808210155b6107405760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610582565b50505050505050565b5f546001600160a01b031633146107725760405162461bcd60e51b815260040161058290611709565b600983905560015461078d90620186a0906106529085610fbf565b600a556001546107a690620186a0906106529084610fbf565b600b55505050565b5f610477338484610a58565b5f546001600160a01b031633146107e35760405162461bcd60e51b815260040161058290611709565b600c879055600d869055600f859055600e849055601083905560118290556012819055601354610814906001610fca565b60105411158015610834575060135461082e906001610fca565b60115411155b801561084f5750601354610849906001610fca565b60125411155b6107405760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610582565b5f546001600160a01b031633146108d75760405162461bcd60e51b815260040161058290611709565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661098c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610582565b6001600160a01b0382166109ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610582565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610552828461173d565b6001600160a01b038316610abc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610582565b6001600160a01b038216610b1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610582565b6001600160a01b0383165f90815260026020526040902054811115610b9f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610582565b6001600160a01b0383165f9081526004602052604090205460ff16158015610bdf57506001600160a01b0382165f9081526004602052604090205460ff16155b15610c2957600654600160a01b900460ff16610c295760405162461bcd60e51b81526020600482015260096024820152681a5cd15b98589b195960ba1b6044820152606401610582565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c6957506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c8357506006546001600160a01b03838116911614155b8015610c9a57506001600160a01b03821661dead14155b15610d12576016546001600160a01b0383165f90815260026020526040902054610cc49083610fd5565b1115610d125760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610582565b6006546001600160a01b03848116911614610db15760155481111580610d4f57506001600160a01b0383165f9081526004602052604090205460ff165b80610d7157506001600160a01b0382165f9081526004602052604090205460ff165b610db15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610582565b60145481111580610dd957506001600160a01b0383165f9081526004602052604090205460ff165b80610dfb57506001600160a01b0382165f9081526004602052604090205460ff165b610e3b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610582565b6006546001600160a01b038381169116148015610e7057506001600160a01b0383165f9081526004602052604090205460ff16155b15610e8d57600160075f828254610e879190611750565b90915550505b610e98838383610fe0565b15610ead57610ea8600a54611098565b5f6007555b6001600160a01b0383165f90815260026020526040902054610ecf9082610a4d565b6001600160a01b0384165f90815260026020908152604080832093909355600490529081205460ff1615610f035781610f0e565b610f0e848484611208565b6001600160a01b0384165f90815260026020526040902054909150610f339082610fd5565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f869085815260200190565b60405180910390a350505050565b5f8184841115610fb75760405162461bcd60e51b8152600401610582919061157d565b505050900390565b5f6105528284611763565b5f610552828461177a565b5f6105528284611750565b600b54600a54305f9081526002602052604081205460085491938510159211159060ff1615801561101a5750600654600160a81b900460ff165b801561102f5750600654600160a01b900460ff165b80156110385750815b801561105c57506001600160a01b0386165f9081526004602052604090205460ff16155b801561107557506006546001600160a01b038681169116145b8015611085575060095460075410155b801561108e5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c545f936110d1936002936106b99391926110cb928391610fd5565b90610fd5565b90505f6110ed82610652600c5486610fbf90919063ffffffff16565b90505f6110fa8483610a4d565b90504761110682611332565b5f6111114783610a4d565b90505f61113361112c600c5488610a4d90919063ffffffff16565b8390610fca565b90505f61114b600c5483610fbf90919063ffffffff16565b9050801561115d5761115d8682611482565b600d545f90611171906106b9856002610fbf565b905080156111b2576018546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b0573d5f803e3d5ffd5b505b4780156111f2576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f0573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff16156112315750601454610552565b5f61123c8585611533565b111561132b575f61125e6112508686611533565b6013546106b9908690610fca565b305f9081526002602052604090205490915061127a9082610fd5565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112ca9085815260200190565b60405180910390a35f600f541180156112ed5750600f546112eb8686611533565b115b15611319576113193061dead611314600f546106b960135489610fca90919063ffffffff16565b610a58565b6113238382610a4d565b915050610552565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136557611365611799565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e091906117ad565b816001815181106113f3576113f3611799565b6001600160a01b039283166020918202929092010152600554611419913091168461092a565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906114519085905f908690309042906004016117c8565b5f604051808303815f87803b158015611468575f80fd5b505af115801561147a573d5f803e3d5ffd5b505050505050565b60055461149a9030906001600160a01b03168461092a565b60055460195460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611507573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061152c9190611837565b5050505050565b6006545f906001600160a01b0390811690831603611554575060115461047b565b6006546001600160a01b0390811690841603611573575060105461047b565b5060125492915050565b5f6020808352835180828501525f5b818110156115a85785810183015185820160400152820161158c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115dc575f80fd5b50565b5f80604083850312156115f0575f80fd5b82356115fb816115c8565b946020939093013593505050565b5f805f6060848603121561161b575f80fd5b8335611626816115c8565b92506020840135611636816115c8565b929592945050506040919091013590565b5f60208284031215611657575f80fd5b8135610552816115c8565b5f805f60608486031215611674575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156116a1575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156116e3575f80fd5b82356116ee816115c8565b915060208301356116fe816115c8565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561047b5761047b611729565b8082018082111561047b5761047b611729565b808202811582820484141761047b5761047b611729565b5f8261179457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156117bd575f80fd5b8151610552816115c8565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611849575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c15be07639e45329b2a7054e0d1e91df9d2fdb6a20a2259da0a721e7adc168164736f6c63430008150033
Deployed Bytecode
0x608060405260043610610134575f3560e01c8063893d20e8116100a8578063a9059cbb1161006d578063a9059cbb14610387578063bca238aa146103a6578063cb7f97d7146103d4578063dd62ed3e146103f3578063ed233ee914610437578063f2fde38b1461044c575f80fd5b8063893d20e8146102cf57806395d89b41146102ff5780639cc353511461032a5780639d8740cb14610349578063a8aa1b3114610368575f80fd5b80632f54bf6e116100f95780632f54bf6e14610215578063313ce56714610242578063333e6f061461025d57806370a082311461027257806370db69d6146102a6578063715018a6146102bb575f80fd5b806306fdde031461013f578063095ea7b31461018f57806318160ddd146101be57806323b872dd146101e0578063293230b8146101ff575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601681527511195e14db9a5999995c88151c98591a5b99c8109bdd60521b60208201525b604051610186919061157d565b60405180910390f35b34801561019a575f80fd5b506101ae6101a93660046115df565b61046b565b6040519015158152602001610186565b3480156101c9575f80fd5b506101d2610481565b604051908152602001610186565b3480156101eb575f80fd5b506101ae6101fa366004611609565b6104f1565b34801561020a575f80fd5b50610213610559565b005b348015610220575f80fd5b506101ae61022f366004611647565b5f546001600160a01b0391821691161490565b34801561024d575f80fd5b5060405160098152602001610186565b348015610268575f80fd5b506101d260165481565b34801561027d575f80fd5b506101d261028c366004611647565b6001600160a01b03165f9081526002602052604090205490565b3480156102b1575f80fd5b506101d260155481565b3480156102c6575f80fd5b506102136105a0565b3480156102da575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610186565b34801561030a575f80fd5b506040805180820190915260038152622229a360e91b6020820152610179565b348015610335575f80fd5b50610213610344366004611662565b61060d565b348015610354575f80fd5b50610213610363366004611662565b610749565b348015610373575f80fd5b506006546102e7906001600160a01b031681565b348015610392575f80fd5b506101ae6103a13660046115df565b6107ae565b3480156103b1575f80fd5b506101ae6103c0366004611647565b60046020525f908152604090205460ff1681565b3480156103df575f80fd5b506102136103ee36600461168b565b6107ba565b3480156103fe575f80fd5b506101d261040d3660046116d2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610442575f80fd5b506101d260145481565b348015610457575f80fd5b50610213610466366004611647565b6108ae565b5f61047733848461092a565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104ec9290916104e69190610a4d565b90610a4d565b905090565b5f6104fd848484610a58565b61054e843361054985604051806060016040528060288152602001611863602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f94565b61092a565b5060015b9392505050565b5f546001600160a01b0316331461058b5760405162461bcd60e51b815260040161058290611709565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105c95760405162461bcd60e51b815260040161058290611709565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106365760405162461bcd60e51b815260040161058290611709565b5f61065861271061065286600154610fbf90919063ffffffff16565b90610fca565b90505f61067661271061065286600154610fbf90919063ffffffff16565b90505f61069461271061065286600154610fbf90919063ffffffff16565b60148490556015839055601681905590505f6106bf6103e861065260056106b9610481565b90610fbf565b90508084101580156106d15750808310155b80156106dd5750808210155b6107405760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610582565b50505050505050565b5f546001600160a01b031633146107725760405162461bcd60e51b815260040161058290611709565b600983905560015461078d90620186a0906106529085610fbf565b600a556001546107a690620186a0906106529084610fbf565b600b55505050565b5f610477338484610a58565b5f546001600160a01b031633146107e35760405162461bcd60e51b815260040161058290611709565b600c879055600d869055600f859055600e849055601083905560118290556012819055601354610814906001610fca565b60105411158015610834575060135461082e906001610fca565b60115411155b801561084f5750601354610849906001610fca565b60125411155b6107405760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610582565b5f546001600160a01b031633146108d75760405162461bcd60e51b815260040161058290611709565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661098c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610582565b6001600160a01b0382166109ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610582565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610552828461173d565b6001600160a01b038316610abc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610582565b6001600160a01b038216610b1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610582565b6001600160a01b0383165f90815260026020526040902054811115610b9f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610582565b6001600160a01b0383165f9081526004602052604090205460ff16158015610bdf57506001600160a01b0382165f9081526004602052604090205460ff16155b15610c2957600654600160a01b900460ff16610c295760405162461bcd60e51b81526020600482015260096024820152681a5cd15b98589b195960ba1b6044820152606401610582565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c6957506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c8357506006546001600160a01b03838116911614155b8015610c9a57506001600160a01b03821661dead14155b15610d12576016546001600160a01b0383165f90815260026020526040902054610cc49083610fd5565b1115610d125760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610582565b6006546001600160a01b03848116911614610db15760155481111580610d4f57506001600160a01b0383165f9081526004602052604090205460ff165b80610d7157506001600160a01b0382165f9081526004602052604090205460ff165b610db15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610582565b60145481111580610dd957506001600160a01b0383165f9081526004602052604090205460ff165b80610dfb57506001600160a01b0382165f9081526004602052604090205460ff165b610e3b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610582565b6006546001600160a01b038381169116148015610e7057506001600160a01b0383165f9081526004602052604090205460ff16155b15610e8d57600160075f828254610e879190611750565b90915550505b610e98838383610fe0565b15610ead57610ea8600a54611098565b5f6007555b6001600160a01b0383165f90815260026020526040902054610ecf9082610a4d565b6001600160a01b0384165f90815260026020908152604080832093909355600490529081205460ff1615610f035781610f0e565b610f0e848484611208565b6001600160a01b0384165f90815260026020526040902054909150610f339082610fd5565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f869085815260200190565b60405180910390a350505050565b5f8184841115610fb75760405162461bcd60e51b8152600401610582919061157d565b505050900390565b5f6105528284611763565b5f610552828461177a565b5f6105528284611750565b600b54600a54305f9081526002602052604081205460085491938510159211159060ff1615801561101a5750600654600160a81b900460ff165b801561102f5750600654600160a01b900460ff165b80156110385750815b801561105c57506001600160a01b0386165f9081526004602052604090205460ff16155b801561107557506006546001600160a01b038681169116145b8015611085575060095460075410155b801561108e5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c545f936110d1936002936106b99391926110cb928391610fd5565b90610fd5565b90505f6110ed82610652600c5486610fbf90919063ffffffff16565b90505f6110fa8483610a4d565b90504761110682611332565b5f6111114783610a4d565b90505f61113361112c600c5488610a4d90919063ffffffff16565b8390610fca565b90505f61114b600c5483610fbf90919063ffffffff16565b9050801561115d5761115d8682611482565b600d545f90611171906106b9856002610fbf565b905080156111b2576018546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b0573d5f803e3d5ffd5b505b4780156111f2576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f0573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff16156112315750601454610552565b5f61123c8585611533565b111561132b575f61125e6112508686611533565b6013546106b9908690610fca565b305f9081526002602052604090205490915061127a9082610fd5565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112ca9085815260200190565b60405180910390a35f600f541180156112ed5750600f546112eb8686611533565b115b15611319576113193061dead611314600f546106b960135489610fca90919063ffffffff16565b610a58565b6113238382610a4d565b915050610552565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136557611365611799565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e091906117ad565b816001815181106113f3576113f3611799565b6001600160a01b039283166020918202929092010152600554611419913091168461092a565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906114519085905f908690309042906004016117c8565b5f604051808303815f87803b158015611468575f80fd5b505af115801561147a573d5f803e3d5ffd5b505050505050565b60055461149a9030906001600160a01b03168461092a565b60055460195460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611507573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061152c9190611837565b5050505050565b6006545f906001600160a01b0390811690831603611554575060115461047b565b6006546001600160a01b0390811690841603611573575060105461047b565b5060125492915050565b5f6020808352835180828501525f5b818110156115a85785810183015185820160400152820161158c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115dc575f80fd5b50565b5f80604083850312156115f0575f80fd5b82356115fb816115c8565b946020939093013593505050565b5f805f6060848603121561161b575f80fd5b8335611626816115c8565b92506020840135611636816115c8565b929592945050506040919091013590565b5f60208284031215611657575f80fd5b8135610552816115c8565b5f805f60608486031215611674575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156116a1575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156116e3575f80fd5b82356116ee816115c8565b915060208301356116fe816115c8565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561047b5761047b611729565b8082018082111561047b5761047b611729565b808202811582820484141761047b5761047b611729565b5f8261179457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156117bd575f80fd5b8151610552816115c8565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611849575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c15be07639e45329b2a7054e0d1e91df9d2fdb6a20a2259da0a721e7adc168164736f6c63430008150033
Deployed Bytecode Sourcemap
3911:9968:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:67;;;;;;;;;;-1:-1:-1;6291:5:0;;;;;;;;;;;;-1:-1:-1;;;6291:5:0;;;;6231:67;;;;;;;:::i;:::-;;;;;;;;7047:133;;;;;;;;;;-1:-1:-1;7047:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7047:133:0;1023:187:1;6909:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6909:132:0;1215:177:1;9146:309:0;;;;;;;;;;-1:-1:-1;9146:309:0;;;;;:::i;:::-;;:::i;6708:62::-;;;;;;;;;;;;;:::i;:::-;;3540:87;;;;;;;;;;-1:-1:-1;3540:87:0;;;;;:::i;:::-;3595:4;3620:5;-1:-1:-1;;;;;3609:16:0;;;3620:5;;3609:16;;3540:87;6381:67;;;;;;;;;;-1:-1:-1;6381:67:0;;4141:1;2252:36:1;;2240:2;2225:18;6381:67:0;2110:184:1;5254:58:0;;;;;;;;;;;;;;;;6454:103;;;;;;;;;;-1:-1:-1;6454:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6537:18:0;6520:7;6537:18;;;:9;:18;;;;;;;6454:103;5193:54;;;;;;;;;;;;;;;;3750:106;;;;;;;;;;;;;:::i;7190:78::-;;;;;;;;;;-1:-1:-1;7242:7:0;7260:5;-1:-1:-1;;;;;7260:5:0;7190:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7190:78:0;2299:203:1;6304:71:0;;;;;;;;;;-1:-1:-1;6366:7:0;;;;;;;;;;;;-1:-1:-1;;;6366:7:0;;;;6304:71;;7280:542;;;;;;;;;;-1:-1:-1;7280:542:0;;;;;:::i;:::-;;:::i;11608:314::-;;;;;;;;;;-1:-1:-1;11608:314:0;;;;;:::i;:::-;;:::i;4416:19::-;;;;;;;;;;-1:-1:-1;4416:19:0;;;;-1:-1:-1;;;;;4416:19:0;;;6563:139;;;;;;;;;;-1:-1:-1;6563:139:0;;;;;:::i;:::-;;:::i;4340:46::-;;;;;;;;;;-1:-1:-1;4340:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11930:518;;;;;;;;;;-1:-1:-1;11930:518:0;;;;;:::i;:::-;;:::i;6776:127::-;;;;;;;;;;-1:-1:-1;6776:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6874:18:0;;;6857:7;6874:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6776:127;5127:59;;;;;;;;;;;;;;;;3633:111;;;;;;;;;;-1:-1:-1;3633:111:0;;;;;:::i;:::-;;:::i;7047:133::-;7122:4;7129:37;7138:10;7150:7;7159:6;7129:8;:37::i;:::-;-1:-1:-1;7174:4:0;7047:133;;;;;:::o;6909:132::-;6537:9;:18;;;;5354:42;6962:7;6537:18;;;;;6979:12;;6962:7;;6979:60;;6537:18;;6979:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6972:67;;6909:132;:::o;9146:309::-;9244:4;9261:36;9271:6;9279:9;9290:6;9261:9;:36::i;:::-;9308:117;9317:6;9325:10;9337:87;9373:6;9337:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9337:19:0;;;;;;:11;:19;;;;;;;;9357:10;9337:31;;;;;;;;;:87;:35;:87::i;:::-;9308:8;:117::i;:::-;-1:-1:-1;9443:4:0;9146:309;;;;;;:::o;6708:62::-;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;;;;;;;;;6752:9:::1;:16:::0;;-1:-1:-1;;;;6752:16:0::1;-1:-1:-1::0;;;6752:16:0::1;::::0;;6708:62::o;3750:106::-;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;3813:1:::1;3797:18:::0;;-1:-1:-1;;;;;;3797:18:0::1;::::0;;3822:32:::1;::::0;2445:51:1;;;3822:32:0::1;::::0;2433:2:1;2418:18;3822:32:0::1;;;;;;;3750:106::o:0;7280:542::-;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;7386:13:::1;7402:33;7429:5;7402:22;7419:4;7402:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;7386:49;;7437:19;7459:34;7487:5;7459:23;7476:5;7459:12;;:16;;:23;;;;:::i;:34::-;7437:56;;7495:17;7515:36;7545:5;7515:25;7532:7;7515:12;;:16;;:25;;;;:::i;:36::-;7562:11;:19:::0;;;7583:6:::1;:20:::0;;;7605:10:::1;:22:::0;;;7495:56;-1:-1:-1;;7654:30:0::1;7679:4;7654:20;7672:1;7654:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;7638:46;;7712:5;7703;:14;;:38;;;;;7736:5;7721:11;:20;;7703:38;:60;;;;;7758:5;7745:9;:18;;7703:60;7695:119;;;::::0;-1:-1:-1;;;7695:119:0;;4614:2:1;7695:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;7695:119:0::1;4412:410:1::0;7695:119:0::1;7375:447;;;;7280:542:::0;;;:::o;11608:314::-;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;11741:10:::1;:24:::0;;;11782:12:::1;::::0;:53:::1;::::0;11827:6:::1;::::0;11782:32:::1;::::0;11799:14;11782:16:::1;:32::i;:53::-;11767:12;:68:::0;11860:12:::1;::::0;:54:::1;::::0;11906:6:::1;::::0;11860:33:::1;::::0;11877:15;11860:16:::1;:33::i;:54::-;11847:10;:67:::0;-1:-1:-1;;;11608:314:0:o;6563:139::-;6641:4;6648:40;6658:10;6670:9;6681:6;6648:9;:40::i;11930:518::-;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;12120:12:::1;:25:::0;;;12147:12:::1;:25:::0;;;12174:7:::1;:15:::0;;;12191:14:::1;:29:::0;;;12222:6:::1;:15:::0;;;12239:7:::1;:15:::0;;;12256:11:::1;:20:::0;;;12305:11:::1;::::0;:18:::1;::::0;-1:-1:-1;12305:15:0::1;:18::i;:::-;12295:6;;:28;;:61;;;;-1:-1:-1::0;12338:11:0::1;::::0;:18:::1;::::0;12354:1:::1;12338:15;:18::i;:::-;12327:7;;:29;;12295:61;:98;;;;-1:-1:-1::0;12375:11:0::1;::::0;:18:::1;::::0;12391:1:::1;12375:15;:18::i;:::-;12360:11;;:33;;12295:98;12287:153;;;::::0;-1:-1:-1;;;12287:153:0;;5029:2:1;12287:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;12287:153:0::1;4827:406:1::0;3633:111:0;3595:4;3620:5;-1:-1:-1;;;;;3620:5:0;3507:10;3609:16;3491:38;;;;-1:-1:-1;;;3491:38:0;;;;;;;:::i;:::-;3699:5:::1;:11:::0;;-1:-1:-1;;;;;;3699:11:0::1;-1:-1:-1::0;;;;;3699:11:0;::::1;::::0;;::::1;::::0;;;3717:25:::1;::::0;2445:51:1;;;3717:25:0::1;::::0;2433:2:1;2418:18;3717:25:0::1;;;;;;;3633:111:::0;:::o;8803:335::-;-1:-1:-1;;;;;8896:19:0;;8888:68;;;;-1:-1:-1;;;8888:68:0;;5656:2:1;8888:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;8888:68:0;5454:400:1;8888:68:0;-1:-1:-1;;;;;8975:21:0;;8967:68;;;;-1:-1:-1;;;8967:68:0;;6061:2:1;8967:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;8967:68:0;5859:398:1;8967:68:0;-1:-1:-1;;;;;9046:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9098:32;;1361:25:1;;;9098:32:0;;1334:18:1;9098:32:0;;;;;;;8803:335;;;:::o;534:98::-;592:7;619:5;623:1;619;:5;:::i;12460:1416::-;-1:-1:-1;;;;;12557:20:0;;12549:70;;;;-1:-1:-1;;;12549:70:0;;6729:2:1;12549:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;12549:70:0;6527:401:1;12549:70:0;-1:-1:-1;;;;;12638:23:0;;12630:71;;;;-1:-1:-1;;;12630:71:0;;7135:2:1;12630:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;12630:71:0;6933:399:1;12630:71:0;-1:-1:-1;;;;;6537:18:0;;6520:7;6537:18;;;:9;:18;;;;;;12720:6;:27;;12712:88;;;;-1:-1:-1;;;12712:88:0;;7539:2:1;12712:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;12712:88:0;7337:413:1;12712:88:0;-1:-1:-1;;;;;12815:21:0;;;;;;:13;:21;;;;;;;;12814:22;:51;;;;-1:-1:-1;;;;;;12841:24:0;;;;;;:13;:24;;;;;;;;12840:25;12814:51;12811:89;;;12875:9;;-1:-1:-1;;;12875:9:0;;;;12867:31;;;;-1:-1:-1;;;12867:31:0;;7957:2:1;12867:31:0;;;7939:21:1;7996:1;7976:18;;;7969:29;-1:-1:-1;;;8014:18:1;;;8007:39;8063:18;;12867:31:0;7755:332:1;12867:31:0;-1:-1:-1;;;;;12914:21:0;;;;;;:13;:21;;;;;;;;12913:22;:51;;;;-1:-1:-1;;;;;;12940:24:0;;;;;;:13;:24;;;;;;;;12939:25;12913:51;:81;;;;-1:-1:-1;12989:4:0;;-1:-1:-1;;;;;12968:26:0;;;12989:4;;12968:26;;12913:81;:111;;;;-1:-1:-1;;;;;;12998:26:0;;5354:42;12998:26;;12913:111;12910:219;;;13082:10;;-1:-1:-1;;;;;13045:20:0;;;;;;:9;:20;;;;;;:32;;13070:6;13045:24;:32::i;:::-;13044:48;;13036:91;;;;-1:-1:-1;;;13036:91:0;;8294:2:1;13036:91:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:32;8352:18;;;8345:60;8422:18;;13036:91:0;8092:354:1;13036:91:0;13152:4;;-1:-1:-1;;;;;13142:14:0;;;13152:4;;13142:14;13139:120;;13176:6;;13166;:16;;:41;;;-1:-1:-1;;;;;;13186:21:0;;;;;;:13;:21;;;;;;;;13166:41;:69;;;-1:-1:-1;;;;;;13211:24:0;;;;;;:13;:24;;;;;;;;13166:69;13158:99;;;;-1:-1:-1;;;13158:99:0;;8653:2:1;13158:99:0;;;8635:21:1;8692:2;8672:18;;;8665:30;-1:-1:-1;;;8711:18:1;;;8704:47;8768:18;;13158:99:0;8451:341:1;13158:99:0;13287:11;;13277:6;:21;;:46;;;-1:-1:-1;;;;;;13302:21:0;;;;;;:13;:21;;;;;;;;13277:46;:74;;;-1:-1:-1;;;;;;13327:24:0;;;;;;:13;:24;;;;;;;;13277:74;13269:104;;;;-1:-1:-1;;;13269:104:0;;8653:2:1;13269:104:0;;;8635:21:1;8692:2;8672:18;;;8665:30;-1:-1:-1;;;8711:18:1;;;8704:47;8768:18;;13269:104:0;8451:341:1;13269:104:0;13401:4;;-1:-1:-1;;;;;13388:17:0;;;13401:4;;13388:17;:43;;;;-1:-1:-1;;;;;;13410:21:0;;;;;;:13;:21;;;;;;;;13409:22;13388:43;13385:76;;;13457:1;13433:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;13385:76:0;13474:45;13493:6;13501:9;13512:6;13474:18;:45::i;:::-;13471:101;;;13521:22;13530:12;;13521:8;:22::i;:::-;13568:1;13545:12;:25;13471:101;-1:-1:-1;;;;;13602:17:0;;;;;;:9;:17;;;;;;:29;;13624:6;13602:21;:29::i;:::-;-1:-1:-1;;;;;13582:17:0;;;;;;:9;:17;;;;;;;;:49;;;;13668:13;:21;;;;;;;;13667:22;:68;;13729:6;13667:68;;;13692:34;13700:6;13708:9;13719:6;13692:7;:34::i;:::-;-1:-1:-1;;;;;13769:20:0;;;;;;:9;:20;;;;;;13642:93;;-1:-1:-1;13769:40:0;;13642:93;13769:24;:40::i;:::-;-1:-1:-1;;;;;13746:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13825:43;;;;;;;;;;13853:14;1361:25:1;;1349:2;1334:18;;1215:177;13825:43:0;;;;;;;;12538:1338;12460:1416;;;:::o;958:240::-;1078:7;1139:12;1131:6;;;;1123:29;;;;-1:-1:-1;;;1123:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1174:5:0;;;958:240::o;640:98::-;698:7;725:5;729:1;725;:5;:::i;746:98::-;804:7;831:5;835:1;831;:5;:::i;428:98::-;486:7;513:5;517:1;513;:5;:::i;8397:398::-;8542:10;;8613:12;;8603:4;8499;6537:18;;;:9;:18;;;;;;8644:8;;8499:4;;8532:20;;;;-1:-1:-1;8585:40:0;;8644:8;;8643:9;:24;;;;-1:-1:-1;8656:11:0;;-1:-1:-1;;;8656:11:0;;;;8643:24;:37;;;;-1:-1:-1;8671:9:0;;-1:-1:-1;;;8671:9:0;;;;8643:37;:49;;;;;8684:8;8643:49;:75;;;;-1:-1:-1;;;;;;8697:21:0;;;;;;:13;:21;;;;;;;;8696:22;8643:75;:96;;;;-1:-1:-1;8735:4:0;;-1:-1:-1;;;;;8722:17:0;;;8735:4;;8722:17;8643:96;:126;;;;;8759:10;;8743:12;;:26;;8643:126;:144;;;;;8773:14;8643:144;8636:151;8397:398;-1:-1:-1;;;;;;8397:398:0:o;9463:1036::-;4760:8;:15;;-1:-1:-1;;4760:15:0;4771:4;4760:15;;;;;;9591:14:::1;::::0;9573:12:::1;::::0;9549::::1;::::0;4760:8;;9548:66:::1;::::0;9612:1:::1;::::0;9549:57:::1;::::0;9591:14;;9549:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;9548:66::-;9525:89;;9625:32;9660:42;9689:12;9660:24;9671:12;;9660:6;:10;;:24;;;;:::i;:42::-;9625:77:::0;-1:-1:-1;9713:14:0::1;9730:36;:6:::0;9625:77;9730:10:::1;:36::i;:::-;9713:53:::0;-1:-1:-1;9802:21:0::1;9834:24;9713:53:::0;9834:16:::1;:24::i;:::-;9869:20;9892:41;:21;9918:14:::0;9892:25:::1;:41::i;:::-;9869:64;;9944:19;9965:48;9982:30;9999:12;;9982;:16;;:30;;;;:::i;:::-;9965:12:::0;;:16:::1;:48::i;:::-;9944:69;;10024:29;10056;10072:12;;10056:11;:15;;:29;;;;:::i;:::-;10024:61:::0;-1:-1:-1;10099:34:0;;10096:103:::1;;10135:61;10148:24;10174:21;10135:12;:61::i;:::-;10255:12;::::0;10209:20:::1;::::0;10232:36:::1;::::0;:18:::1;:11:::0;10248:1:::1;10232:15;:18::i;:36::-;10209:59:::0;-1:-1:-1;10282:16:0;;10279:65:::1;;10308:10;::::0;10300:42:::1;::::0;-1:-1:-1;;;;;10308:10:0;;::::1;::::0;10300:42;::::1;;;::::0;10329:12;;10308:10:::1;10300:42:::0;10308:10;10300:42;10329:12;10308:10;10300:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10279:65;10380:21;10415:28:::0;;10412:80:::1;;10453:10;::::0;10445:45:::1;::::0;-1:-1:-1;;;;;10453:10:0;;::::1;::::0;10445:45;::::1;;;::::0;10474:15;;10453:10:::1;10445:45:::0;10453:10;10445:45;10474:15;10453:10;10445:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10412:80;-1:-1:-1::0;;4780:8:0;:16;;-1:-1:-1;;4780:16:0;;;-1:-1:-1;;;;;;;;9463:1036:0:o;10949:651::-;-1:-1:-1;;;;;11059:24:0;;11035:7;11059:24;;;:13;:24;;;;;;;;11055:51;;;-1:-1:-1;11093:11:0;;11086:18;;11055:51;11152:1;11119:30;11131:6;11139:9;11119:11;:30::i;:::-;:34;11116:462;;;11165:17;11185:59;11213:30;11225:6;11233:9;11213:11;:30::i;:::-;11196:11;;11185:23;;:6;;:10;:23::i;:59::-;11300:4;11282:24;;;;:9;:24;;;;;;11165:79;;-1:-1:-1;11282:39:0;;11165:79;11282:28;:39::i;:::-;11273:4;11255:24;;;;:9;:24;;;;;;;:66;;;;11337:42;;-1:-1:-1;;;;;11337:42:0;;;;;;;11369:9;1361:25:1;;1349:2;1334:18;;1215:177;11337:42:0;;;;;;;;11411:1;11393:7;;:20;:64;;;;;11450:7;;11417:30;11429:6;11437:9;11417:11;:30::i;:::-;:40;11393:64;11390:148;;;11459:77;11477:4;5354:42;11499:36;11527:7;;11499:23;11510:11;;11499:6;:10;;:23;;;;:::i;:36::-;11459:9;:77::i;:::-;11555:21;:6;11566:9;11555:10;:21::i;:::-;11548:28;;;;;11116:462;-1:-1:-1;11586:6:0;10949:651;-1:-1:-1;;10949:651:0:o;10507:434::-;10597:16;;;10611:1;10597:16;;;;;;;;10573:21;;10597:16;;;;;;;;;;-1:-1:-1;10597:16:0;10573:40;;10642:4;10624;10629:1;10624:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10624:23:0;;;:7;;;;;;;;;;:23;;;;10668:6;;:13;;;-1:-1:-1;;;10668:13:0;;;;:6;;;;;:11;;:13;;;;;10624:7;;10668:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10658:4;10663:1;10658:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10658:23:0;;;:7;;;;;;;;;:23;10724:6;;10692:53;;10709:4;;10724:6;10733:11;10692:8;:53::i;:::-;10756:6;;:177;;-1:-1:-1;;;10756:177:0;;-1:-1:-1;;;;;10756:6:0;;;;:57;;:177;;10828:11;;10756:6;;10870:4;;10897;;10917:15;;10756:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10562:379;10507:434;:::o;7830:334::-;7943:6;;7911:53;;7928:4;;-1:-1:-1;;;;;7943:6:0;7952:11;7911:8;:53::i;:::-;7975:6;;8116:9;;7975:181;;-1:-1:-1;;;7975:181:0;;8038:4;7975:181;;;11168:34:1;11218:18;;;11211:34;;;7975:6:0;11261:18:1;;;11254:34;;;11304:18;;;11297:34;-1:-1:-1;;;;;8116:9:0;;;11347:19:1;;;11340:44;8140:15:0;11400:19:1;;;11393:35;7975:6:0;;;:22;;8005:9;;11102:19:1;;7975:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7830:334;;:::o;8172:217::-;8287:4;;8251:7;;-1:-1:-1;;;;;8287:4:0;;;8274:17;;;;8271:38;;-1:-1:-1;8300:7:0;;8293:14;;8271:38;8332:4;;-1:-1:-1;;;;;8332:4:0;;;8322:14;;;;8319:34;;-1:-1:-1;8345:6:0;;8338:13;;8319:34;-1:-1:-1;8370:11:0;;8172:217;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8797:125::-;8862:9;;;8883:10;;;8880:36;;;8896:18;;:::i;8927:168::-;9000:9;;;9031;;9048:15;;;9042:22;;9028:37;9018:71;;9069:18;;:::i;9100:217::-;9140:1;9166;9156:132;;9210:10;9205:3;9201:20;9198:1;9191:31;9245:4;9242:1;9235:15;9273:4;9270:1;9263:15;9156:132;-1:-1:-1;9302:9:1;;9100:217::o;9454:127::-;9515:10;9510:3;9506:20;9503:1;9496:31;9546:4;9543:1;9536:15;9570:4;9567:1;9560:15;9586:251;9656:6;9709:2;9697:9;9688:7;9684:23;9680:32;9677:52;;;9725:1;9722;9715:12;9677:52;9757:9;9751:16;9776:31;9801:5;9776:31;:::i;9842:980::-;10104:4;10152:3;10141:9;10137:19;10183:6;10172:9;10165:25;10209:2;10247:6;10242:2;10231:9;10227:18;10220:34;10290:3;10285:2;10274:9;10270:18;10263:31;10314:6;10349;10343:13;10380:6;10372;10365:22;10418:3;10407:9;10403:19;10396:26;;10457:2;10449:6;10445:15;10431:29;;10478:1;10488:195;10502:6;10499:1;10496:13;10488:195;;;10567:13;;-1:-1:-1;;;;;10563:39:1;10551:52;;10658:15;;;;10623:12;;;;10599:1;10517:9;10488:195;;;-1:-1:-1;;;;;;;10739:32:1;;;;10734:2;10719:18;;10712:60;-1:-1:-1;;;10803:3:1;10788:19;10781:35;10700:3;9842:980;-1:-1:-1;;;9842:980:1:o;11439:306::-;11527:6;11535;11543;11596:2;11584:9;11575:7;11571:23;11567:32;11564:52;;;11612:1;11609;11602:12;11564:52;11641:9;11635:16;11625:26;;11691:2;11680:9;11676:18;11670:25;11660:35;;11735:2;11724:9;11720:18;11714:25;11704:35;;11439:306;;;;;:::o
Swarm Source
ipfs://3c15be07639e45329b2a7054e0d1e91df9d2fdb6a20a2259da0a721e7adc1681
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.