ERC-20
Overview
Max Total Supply
690,000,000,000,000 GEPE
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
5,175,000,000,000 GEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GiantPepe
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-13 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.18; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external 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 GiantPepe is Ownable { IRouter public uniswapV2Router; address public uniswapV2Pair; address public router; uint8 private _decimals = 18; string private _name = unicode"GIANT ƤƐƤƐ"; string private _symbol = unicode"GEPE"; uint256 private _totalSupply = 690_000_000_000_000 * 1e18; uint256 private maxTxAmount = _totalSupply / 100; mapping(address => uint256) private _balances; mapping(address => bool) private _isExcludedFromFees; mapping(address => mapping(address => uint256)) private _allowances; uint256 private supplyForLiq = _totalSupply * 90 / 100; uint256 private supplyToOwner = _totalSupply * 10 / 100; uint256 private buyTaxes = 25; uint256 private sellTaxes = 25; uint256 private swapTokensAtAmount = _totalSupply / 2000; uint256 private readSwapAtAmount = 5; address public marketingWallet = 0xEd76409B19baecb8984Cdc7aA052bA4AE822CCF5; bool private autoSwapTaxes; bool private inSwapAndLiquify; bool private swapForETH = true; bool private sendTokens = false; bool public tradingOpen = false; bool public liquidityAdded = false; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); constructor() { if(block.chainid == 1) { router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap V2 mainnet } else if(block.chainid == 56) { router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC PCS V2 mainnet } else if(block.chainid == 97) { router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC PCS V2 testnet } uniswapV2Router = IRouter(router); uniswapV2Pair = IFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); transferOwnership(msg.sender); _balances[address(this)] = supplyForLiq; _balances[owner()] = supplyToOwner; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[marketingWallet] = true; _approve(address(this), router, type(uint256).max); emit Transfer(address(0), owner(), supplyToOwner); emit Transfer(address(0), address(this), supplyForLiq); } modifier preventClog { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } receive() external payable {} function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view returns (uint256) {return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _approve( address owner, address spender, uint256 amount ) internal { 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 currentMaxTransaction() public view returns(uint256) { return maxTxAmount / 1e18; } function checkLimits() public view returns(string memory) { string memory currentLimits = "No Limits"; if(maxTxAmount < _totalSupply) { currentLimits = "Max tx limits in effect"; return currentLimits; } else { return currentLimits; } } function setMaxTx(uint8 maxTxPercent) public onlyOwner { require(maxTxPercent >= 1 && maxTxPercent <= 10, "Can set from 1 to 10."); maxTxAmount = _totalSupply * maxTxPercent / 100; } function removeLimits() public onlyOwner { maxTxAmount = _totalSupply; } function launchNow() public onlyOwner() { require(!tradingOpen,"trading is already open"); tradingOpen = true; autoSwapTaxes = true; } function addInitialLiquidity() external onlyOwner { require(!liquidityAdded,"Initial liquidity already added"); uint256 ethToAdd = address(this).balance; uint256 tokensToAdd = _totalSupply * 80 / 100; uniswapV2Router.addLiquidityETH{value: ethToAdd}(address(this), tokensToAdd, 0, 0, owner(), block.timestamp); liquidityAdded = true; } function setTaxes(uint256 newBuyTax, uint256 newSellTax) public onlyOwner { require(newBuyTax <= 60 && newSellTax <= 60, "Taxes cannot exceed 60% each."); buyTaxes = newBuyTax; sellTaxes = newSellTax; } function setPhase(uint8 launchPhase) public onlyOwner { if(launchPhase == 1) { buyTaxes = 30; sellTaxes = 30; } else if(launchPhase == 2) { buyTaxes = 15; sellTaxes = 15; } else if(launchPhase == 3) { buyTaxes = 1; sellTaxes = 15; } else if(launchPhase == 4) { buyTaxes = 1; sellTaxes = 1; } else { revert(); } } function setAutoSwap(bool swapTrueOrFalse) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); autoSwapTaxes = swapTrueOrFalse; } function setTokensForSwap(uint256 tokensForSwap) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); require(tokensForSwap >= 1, "Cannot set below 0.01% of total supply."); require(tokensForSwap <= 100, "Cannot set above 1% of total supply."); swapTokensAtAmount = _totalSupply * tokensForSwap / 10000; readSwapAtAmount = tokensForSwap; } function setTokens() public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); sendTokens = true; swapForETH = false; } function setETH() public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); swapForETH = true; sendTokens = false; } function withdrawTokens(address _token) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); require(_token != address(0), "_token address cannot be 0"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); IERC20(_token).transfer(msg.sender, _contractBalance); } function withdrawETH() public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function changeMarketingWallet(address newMarketing) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner and marketing."); marketingWallet = newMarketing; } function autoSwapSettings() public view returns(string memory, string memory, uint256 triggerAmount) { string memory current; string memory autoSwapTax; triggerAmount = readSwapAtAmount; if(autoSwapTaxes) { autoSwapTax = "Autoswap is ON"; } else if(!autoSwapTaxes) { autoSwapTax = "Autoswap is OFF"; } if(swapForETH) { current = "E"; } else if(sendTokens) { current = 'T'; } return (autoSwapTax, current, triggerAmount); } function taxes() public view returns(uint256 buyTax, uint256 sellTax) { return(buyTaxes, sellTaxes); } function releaseFees(uint256 feeTokens) internal { _balances[address(this)] -= feeTokens; _balances[marketingWallet] += feeTokens; emit Transfer(address(this), marketingWallet, feeTokens); } function _transfer(address from, address to, uint256 amount) internal { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(balanceOf(from) >= amount, "Excessive amount"); uint256 fees; uint256 finalTransferAmount; uint256 contractBalances = balanceOf(address(this)); bool sendTaxes = contractBalances >= swapTokensAtAmount; if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { require(tradingOpen, "Trading not opened yet."); require(amount <= maxTxAmount, "Cannot transfer more than current max transation amount."); } if(_isExcludedFromFees[from] || _isExcludedFromFees[to] || inSwapAndLiquify) { _balances[from] -= amount; _balances[to] += amount; emit Transfer(from, to, amount); } else { if(from == uniswapV2Pair) { fees = amount * buyTaxes / 100; finalTransferAmount = amount - fees; if(autoSwapTaxes) { if(sendTaxes && sendTokens) { releaseFees(swapTokensAtAmount); } } } if(to == uniswapV2Pair) { fees = amount * sellTaxes / 100; finalTransferAmount = amount - fees; // Can be either swap for eth or send tokens if(autoSwapTaxes) { if(sendTaxes && swapForETH) { swapTokensForEth(swapTokensAtAmount); } else if(sendTaxes && sendTokens) { releaseFees(swapTokensAtAmount); } } } if(from != uniswapV2Pair && to != uniswapV2Pair) { finalTransferAmount = amount; } if(fees > 0) { _balances[address(this)] += fees; emit Transfer(from, address(this), fees); } _balances[from] -= amount; _balances[to] += finalTransferAmount; emit Transfer(from, to, finalTransferAmount); } } function swapTokensForEth(uint256 tokenAmount) private preventClog { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // Prevent contract halt if swap fails try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, marketingWallet, block.timestamp) {} catch {} } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addInitialLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoSwapSettings","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"triggerAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketing","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkLimits","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchNow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"swapTrueOrFalse","type":"bool"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxTxPercent","type":"uint8"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"launchPhase","type":"uint8"}],"name":"setPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokensForSwap","type":"uint256"}],"name":"setTokensForSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6003805460ff60a01b1916600960a11b17905560c0604052600e60809081526d04749414e5420c6a4c690c6a4c6960941b60a052600490620000429082620007cb565b506040805180820190915260048152634745504560e01b60208201526005906200006d9082620007cb565b506d2205063ea95de729416080000000600655606460065462000091919062000893565b6007556064600654605a620000a79190620008b3565b620000b3919062000893565b600b556064600654600a620000c99190620008b3565b620000d5919062000893565b600c556019600d556019600e556107d0600654620000f4919062000893565b600f55600560105560118054600165ffffffff000160a01b03191676010000ed76409b19baecb8984cdc7aa052ba4ae822ccf517905534801562000136575f80fd5b505f80546001600160a01b031916339081178255604051909182915f8051602062002a47833981519152908290a350466001036200019a57600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001ff565b46603803620001cf57600380546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620001ff565b46606103620001ff57600380546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790555b600354600180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200025a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002809190620008dd565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003069190620008dd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000351573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003779190620008dd565b600280546001600160a01b0319166001600160a01b0392909216919091179055620003a233620004e9565b600b54305f908152600860208190526040822092909255600c549190620003d05f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160095f62000408620005f660201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260099094528281208054861660019081179091556011548316825292902080549094169091179092556003546200047392165f1962000604565b5f546001600160a01b03166001600160a01b03165f6001600160a01b03165f8051602062002a67833981519152600c54604051620004b391815260200190565b60405180910390a3600b5460405190815230905f905f8051602062002a678339815191529060200160405180910390a36200090c565b5f546001600160a01b03163314620005485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620005af5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200053f565b5f80546040516001600160a01b03808516939216915f8051602062002a4783398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031690565b6001600160a01b038316620006685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200053f565b6001600160a01b038216620006cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200053f565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200075457607f821691505b6020821081036200077357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620007c6575f81815260208120601f850160051c81016020861015620007a15750805b601f850160051c820191505b81811015620007c257828155600101620007ad565b5050505b505050565b81516001600160401b03811115620007e757620007e76200072b565b620007ff81620007f884546200073f565b8462000779565b602080601f83116001811462000835575f84156200081d5750858301515b5f19600386901b1c1916600185901b178555620007c2565b5f85815260208120601f198616915b82811015620008655788860151825594840194600190910190840162000844565b50858210156200088357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f82620008ae57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417620008d757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620008ee575f80fd5b81516001600160a01b038116811462000905575f80fd5b9392505050565b61212d806200091a5f395ff3fe608060405260043610610215575f3560e01c8063751039fc1161011e578063bb85c6d1116100a8578063dd62ed3e1161006d578063dd62ed3e146105fc578063e086e5ec14610640578063f2fde38b14610654578063f887ea4014610673578063ffb54a9914610692575f80fd5b8063bb85c6d11461055c578063c03afb591461057b578063c647b20e1461059a578063d9443923146105b9578063dbc705ad146105d9575f80fd5b806395d89b41116100ee57806395d89b41146104d7578063a457c2d7146104eb578063a49a910f1461050a578063a9059cbb14610529578063ace9038d14610548575f80fd5b8063751039fc1461046957806375f0a8741461047d5780638da5cb5b1461049c57806393818cfa146104b8575f80fd5b80633a6ac26c1161019f57806365f48e621161016f57806365f48e62146103c757806370a08231146103e6578063715018a61461041a578063715492aa1461042e578063728f8eea14610442575f80fd5b80633a6ac26c1461036157806349bd5a5e1461037557806349df728c14610394578063559ed339146103b3575f80fd5b80631694505e116101e55780631694505e146102a357806318160ddd146102da57806323b872dd146102f8578063313ce567146103175780633950935114610342575f80fd5b80630210a83d1461022057806306fdde0314610236578063095ea7b31461026057806311cd0e251461028f575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106b2565b005b348015610241575f80fd5b5061024a61082c565b6040516102579190611d2d565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611d5a565b6108bc565b6040519015158152602001610257565b34801561029a575f80fd5b506102346108d2565b3480156102ae575f80fd5b506001546102c2906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102e5575f80fd5b506006545b604051908152602001610257565b348015610303575f80fd5b5061027f610312366004611d84565b610926565b348015610322575f80fd5b50600354600160a01b900460ff1660405160ff9091168152602001610257565b34801561034d575f80fd5b5061027f61035c366004611d5a565b6109ce565b34801561036c575f80fd5b5061024a610a09565b348015610380575f80fd5b506002546102c2906001600160a01b031681565b34801561039f575f80fd5b506102346103ae366004611dc2565b610a7a565b3480156103be575f80fd5b50610234610bec565b3480156103d2575f80fd5b506102346103e1366004611ddd565b610c40565b3480156103f1575f80fd5b506102ea610400366004611dc2565b6001600160a01b03165f9081526008602052604090205490565b348015610425575f80fd5b50610234610ce8565b348015610439575f80fd5b50610234610d59565b34801561044d575f80fd5b50600d54600e5460408051928352602083019190915201610257565b348015610474575f80fd5b50610234610df9565b348015610488575f80fd5b506011546102c2906001600160a01b031681565b3480156104a7575f80fd5b505f546001600160a01b03166102c2565b3480156104c3575f80fd5b506102346104d2366004611e0a565b610e2a565b3480156104e2575f80fd5b5061024a610e86565b3480156104f6575f80fd5b5061027f610505366004611d5a565b610e95565b348015610515575f80fd5b50610234610524366004611e25565b610f2d565b348015610534575f80fd5b5061027f610543366004611d5a565b61104c565b348015610553575f80fd5b506102ea611058565b348015610567575f80fd5b50610234610576366004611dc2565b611074565b348015610586575f80fd5b50610234610595366004611ddd565b6110d4565b3480156105a5575f80fd5b506102346105b4366004611e3c565b61115e565b3480156105c4575f80fd5b5060115461027f90600160c81b900460ff1681565b3480156105e4575f80fd5b506105ed6111f0565b60405161025793929190611e5c565b348015610607575f80fd5b506102ea610616366004611e91565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b34801561064b575f80fd5b506102346112dd565b34801561065f575f80fd5b5061023461066e366004611dc2565b611365565b34801561067e575f80fd5b506003546102c2906001600160a01b031681565b34801561069d575f80fd5b5060115461027f90600160c01b900460ff1681565b5f546001600160a01b031633146106e45760405162461bcd60e51b81526004016106db90611ec8565b60405180910390fd5b601154600160c81b900460ff161561073e5760405162461bcd60e51b815260206004820152601f60248201527f496e697469616c206c697175696469747920616c72656164792061646465640060448201526064016106db565b60065447905f90606490610753906050611f11565b61075d9190611f28565b6001549091506001600160a01b031663f305d7198330845f806107875f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ed573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108129190611f47565b50506011805460ff60c81b1916600160c81b179055505050565b60606004805461083b90611f72565b80601f016020809104026020016040519081016040528092919081815260200182805461086790611f72565b80156108b25780601f10610889576101008083540402835291602001916108b2565b820191905f5260205f20905b81548152906001019060200180831161089557829003601f168201915b5050505050905090565b5f6108c833848461144c565b5060015b92915050565b5f546001600160a01b03163314806108f457506011546001600160a01b031633145b6109105760405162461bcd60e51b81526004016106db90611faa565b6011805461ffff60b01b1916600160b01b179055565b5f61093284848461156f565b6001600160a01b0384165f908152600a60209081526040808320338452909152902054828110156109b65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106db565b6109c3853385840361144c565b506001949350505050565b335f818152600a602090815260408083206001600160a01b038716845290915281205490916108c8918590610a04908690611fe1565b61144c565b60605f604051806040016040528060098152602001684e6f204c696d69747360b81b81525090506006546007541015610a7557505060408051808201909152601781527f4d6178207478206c696d69747320696e20656666656374000000000000000000602082015290565b919050565b5f546001600160a01b0316331480610a9c57506011546001600160a01b031633145b610ab85760405162461bcd60e51b81526004016106db90611faa565b6001600160a01b038116610b0e5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016106db565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b769190611ff4565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be7919061200b565b505050565b5f546001600160a01b0316331480610c0e57506011546001600160a01b031633145b610c2a5760405162461bcd60e51b81526004016106db90611faa565b6011805461ffff60b01b1916600160b81b179055565b5f546001600160a01b03163314610c695760405162461bcd60e51b81526004016106db90611ec8565b60018160ff1610158015610c815750600a8160ff1611155b610cc55760405162461bcd60e51b815260206004820152601560248201527421b0b71039b2ba10333937b69018903a379018981760591b60448201526064016106db565b60648160ff16600654610cd89190611f11565b610ce29190611f28565b60075550565b5f546001600160a01b03163314610d115760405162461bcd60e51b81526004016106db90611ec8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610d825760405162461bcd60e51b81526004016106db90611ec8565b601154600160c01b900460ff1615610ddc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106db565b6011805464ff000000ff60a01b191664010000000160a01b179055565b5f546001600160a01b03163314610e225760405162461bcd60e51b81526004016106db90611ec8565b600654600755565b5f546001600160a01b0316331480610e4c57506011546001600160a01b031633145b610e685760405162461bcd60e51b81526004016106db90611faa565b60118054911515600160a01b0260ff60a01b19909216919091179055565b60606005805461083b90611f72565b335f908152600a602090815260408083206001600160a01b038616845290915281205482811015610f165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106db565b610f23338585840361144c565b5060019392505050565b5f546001600160a01b0316331480610f4f57506011546001600160a01b031633145b610f6b5760405162461bcd60e51b81526004016106db90611faa565b6001811015610fcc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74207365742062656c6f7720302e303125206f6620746f74616c2060448201526639bab838363c9760c91b60648201526084016106db565b60648111156110295760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f74207365742061626f7665203125206f6620746f74616c2073757060448201526338363c9760e11b60648201526084016106db565b6127108160065461103a9190611f11565b6110449190611f28565b600f55601055565b5f6108c833848461156f565b5f670de0b6b3a764000060075461106f9190611f28565b905090565b5f546001600160a01b031633148061109657506011546001600160a01b031633145b6110b25760405162461bcd60e51b81526004016106db90611faa565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146110fd5760405162461bcd60e51b81526004016106db90611ec8565b8060ff1660010361111557601e600d819055600e5550565b8060ff1660020361112d57600f600d819055600e5550565b8060ff16600303611145576001600d55600f600e5550565b8060ff1660040361021c576001600d819055600e555b50565b5f546001600160a01b031633146111875760405162461bcd60e51b81526004016106db90611ec8565b603c82111580156111995750603c8111155b6111e55760405162461bcd60e51b815260206004820152601d60248201527f54617865732063616e6e6f74206578636565642036302520656163682e00000060448201526064016106db565b600d91909155600e55565b601054601154606091829182908190600160a01b900460ff1615611239575060408051808201909152600e81526d20baba37b9bbb0b81034b99027a760911b6020820152611272565b601154600160a01b900460ff16611272575060408051808201909152600f81526e20baba37b9bbb0b81034b99027a32360891b60208201525b601154600160b01b900460ff16156112a557604051806040016040528060018152602001604560f81b81525091506112d4565b601154600160b81b900460ff16156112d457604051806040016040528060018152602001601560fa1b81525091505b94909350909150565b5f546001600160a01b03163314806112ff57506011546001600160a01b031633145b61131b5760405162461bcd60e51b81526004016106db90611faa565b6040515f90339047908381818185875af1925050503d805f811461135a576040519150601f19603f3d011682016040523d82523d5f602084013e61135f565b606091505b50505050565b5f546001600160a01b0316331461138e5760405162461bcd60e51b81526004016106db90611ec8565b6001600160a01b0381166113f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106db565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106db565b6001600160a01b03821661150f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106db565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115d35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106db565b6001600160a01b0382166116355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106db565b80611654846001600160a01b03165f9081526008602052604090205490565b10156116955760405162461bcd60e51b815260206004820152601060248201526f115e18d95cdcda5d9948185b5bdd5b9d60821b60448201526064016106db565b305f90815260086020908152604080832054600f546001600160a01b038816855260099093529083205483928210159060ff161580156116ed57506001600160a01b0386165f9081526009602052604090205460ff16155b156117c357601154600160c01b900460ff1661174b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f74206f70656e6564207965742e00000000000000000060448201526064016106db565b6007548511156117c35760405162461bcd60e51b815260206004820152603860248201527f43616e6e6f74207472616e73666572206d6f7265207468616e2063757272656e60448201527f74206d6178207472616e736174696f6e20616d6f756e742e000000000000000060648201526084016106db565b6001600160a01b0387165f9081526009602052604090205460ff168061180057506001600160a01b0386165f9081526009602052604090205460ff165b806118145750601154600160a81b900460ff165b156118b2576001600160a01b0387165f9081526008602052604081208054879290611840908490612026565b90915550506001600160a01b0386165f908152600860205260408120805487929061186c908490611fe1565b92505081905550856001600160a01b0316876001600160a01b03165f805160206120d8833981519152876040516118a591815260200190565b60405180910390a3611aec565b6002546001600160a01b0390811690881603611929576064600d54866118d89190611f11565b6118e29190611f28565b93506118ee8486612026565b601154909350600160a01b900460ff1615611929578080156119195750601154600160b81b900460ff165b1561192957611929600f54611af5565b6002546001600160a01b03908116908716036119cb576064600e548661194f9190611f11565b6119599190611f28565b93506119658486612026565b601154909350600160a01b900460ff16156119cb578080156119905750601154600160b01b900460ff165b156119a5576119a0600f54611b7a565b6119cb565b8080156119bb5750601154600160b81b900460ff165b156119cb576119cb600f54611af5565b6002546001600160a01b038881169116148015906119f757506002546001600160a01b03878116911614155b15611a00578492505b8315611a5757305f9081526008602052604081208054869290611a24908490611fe1565b909155505060405184815230906001600160a01b038916905f805160206120d88339815191529060200160405180910390a35b6001600160a01b0387165f9081526008602052604081208054879290611a7e908490612026565b90915550506001600160a01b0386165f9081526008602052604081208054859290611aaa908490611fe1565b92505081905550856001600160a01b0316876001600160a01b03165f805160206120d883398151915285604051611ae391815260200190565b60405180910390a35b50505050505050565b305f9081526008602052604081208054839290611b13908490612026565b90915550506011546001600160a01b03165f9081526008602052604081208054839290611b41908490611fe1565b90915550506011546040518281526001600160a01b039091169030905f805160206120d88339815191529060200160405180910390a350565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611bc057611bc0612039565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3b919061204d565b81600181518110611c4e57611c4e612039565b6001600160a01b039283166020918202929092010152600154611c74913091168461144c565b60015460115460405163791ac94760e01b81526001600160a01b039283169263791ac94792611cb09287925f9288929116904290600401612068565b5f604051808303815f87803b158015611cc7575f80fd5b505af1925050508015611cd8575060015b5050506011805460ff60a81b19169055565b5f81518084525f5b81811015611d0e57602081850181015186830182015201611cf2565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f611d3f6020830184611cea565b9392505050565b6001600160a01b038116811461115b575f80fd5b5f8060408385031215611d6b575f80fd5b8235611d7681611d46565b946020939093013593505050565b5f805f60608486031215611d96575f80fd5b8335611da181611d46565b92506020840135611db181611d46565b929592945050506040919091013590565b5f60208284031215611dd2575f80fd5b8135611d3f81611d46565b5f60208284031215611ded575f80fd5b813560ff81168114611d3f575f80fd5b801515811461115b575f80fd5b5f60208284031215611e1a575f80fd5b8135611d3f81611dfd565b5f60208284031215611e35575f80fd5b5035919050565b5f8060408385031215611e4d575f80fd5b50508035926020909101359150565b606081525f611e6e6060830186611cea565b8281036020840152611e808186611cea565b915050826040830152949350505050565b5f8060408385031215611ea2575f80fd5b8235611ead81611d46565b91506020830135611ebd81611d46565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108cc576108cc611efd565b5f82611f4257634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611f59575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611f8657607f821691505b602082108103611fa457634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526019908201527f4f6e6c79206f776e657220616e64206d61726b6574696e672e00000000000000604082015260600190565b808201808211156108cc576108cc611efd565b5f60208284031215612004575f80fd5b5051919050565b5f6020828403121561201b575f80fd5b8151611d3f81611dfd565b818103818111156108cc576108cc611efd565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205d575f80fd5b8151611d3f81611d46565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120b65784516001600160a01b031683529383019391830191600101612091565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bc8ec48e80c285e621bc0ec71adfb8b213cd5fb29f6e51d88b68820f7efbb81764736f6c634300081400338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x608060405260043610610215575f3560e01c8063751039fc1161011e578063bb85c6d1116100a8578063dd62ed3e1161006d578063dd62ed3e146105fc578063e086e5ec14610640578063f2fde38b14610654578063f887ea4014610673578063ffb54a9914610692575f80fd5b8063bb85c6d11461055c578063c03afb591461057b578063c647b20e1461059a578063d9443923146105b9578063dbc705ad146105d9575f80fd5b806395d89b41116100ee57806395d89b41146104d7578063a457c2d7146104eb578063a49a910f1461050a578063a9059cbb14610529578063ace9038d14610548575f80fd5b8063751039fc1461046957806375f0a8741461047d5780638da5cb5b1461049c57806393818cfa146104b8575f80fd5b80633a6ac26c1161019f57806365f48e621161016f57806365f48e62146103c757806370a08231146103e6578063715018a61461041a578063715492aa1461042e578063728f8eea14610442575f80fd5b80633a6ac26c1461036157806349bd5a5e1461037557806349df728c14610394578063559ed339146103b3575f80fd5b80631694505e116101e55780631694505e146102a357806318160ddd146102da57806323b872dd146102f8578063313ce567146103175780633950935114610342575f80fd5b80630210a83d1461022057806306fdde0314610236578063095ea7b31461026057806311cd0e251461028f575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106b2565b005b348015610241575f80fd5b5061024a61082c565b6040516102579190611d2d565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611d5a565b6108bc565b6040519015158152602001610257565b34801561029a575f80fd5b506102346108d2565b3480156102ae575f80fd5b506001546102c2906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102e5575f80fd5b506006545b604051908152602001610257565b348015610303575f80fd5b5061027f610312366004611d84565b610926565b348015610322575f80fd5b50600354600160a01b900460ff1660405160ff9091168152602001610257565b34801561034d575f80fd5b5061027f61035c366004611d5a565b6109ce565b34801561036c575f80fd5b5061024a610a09565b348015610380575f80fd5b506002546102c2906001600160a01b031681565b34801561039f575f80fd5b506102346103ae366004611dc2565b610a7a565b3480156103be575f80fd5b50610234610bec565b3480156103d2575f80fd5b506102346103e1366004611ddd565b610c40565b3480156103f1575f80fd5b506102ea610400366004611dc2565b6001600160a01b03165f9081526008602052604090205490565b348015610425575f80fd5b50610234610ce8565b348015610439575f80fd5b50610234610d59565b34801561044d575f80fd5b50600d54600e5460408051928352602083019190915201610257565b348015610474575f80fd5b50610234610df9565b348015610488575f80fd5b506011546102c2906001600160a01b031681565b3480156104a7575f80fd5b505f546001600160a01b03166102c2565b3480156104c3575f80fd5b506102346104d2366004611e0a565b610e2a565b3480156104e2575f80fd5b5061024a610e86565b3480156104f6575f80fd5b5061027f610505366004611d5a565b610e95565b348015610515575f80fd5b50610234610524366004611e25565b610f2d565b348015610534575f80fd5b5061027f610543366004611d5a565b61104c565b348015610553575f80fd5b506102ea611058565b348015610567575f80fd5b50610234610576366004611dc2565b611074565b348015610586575f80fd5b50610234610595366004611ddd565b6110d4565b3480156105a5575f80fd5b506102346105b4366004611e3c565b61115e565b3480156105c4575f80fd5b5060115461027f90600160c81b900460ff1681565b3480156105e4575f80fd5b506105ed6111f0565b60405161025793929190611e5c565b348015610607575f80fd5b506102ea610616366004611e91565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b34801561064b575f80fd5b506102346112dd565b34801561065f575f80fd5b5061023461066e366004611dc2565b611365565b34801561067e575f80fd5b506003546102c2906001600160a01b031681565b34801561069d575f80fd5b5060115461027f90600160c01b900460ff1681565b5f546001600160a01b031633146106e45760405162461bcd60e51b81526004016106db90611ec8565b60405180910390fd5b601154600160c81b900460ff161561073e5760405162461bcd60e51b815260206004820152601f60248201527f496e697469616c206c697175696469747920616c72656164792061646465640060448201526064016106db565b60065447905f90606490610753906050611f11565b61075d9190611f28565b6001549091506001600160a01b031663f305d7198330845f806107875f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ed573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108129190611f47565b50506011805460ff60c81b1916600160c81b179055505050565b60606004805461083b90611f72565b80601f016020809104026020016040519081016040528092919081815260200182805461086790611f72565b80156108b25780601f10610889576101008083540402835291602001916108b2565b820191905f5260205f20905b81548152906001019060200180831161089557829003601f168201915b5050505050905090565b5f6108c833848461144c565b5060015b92915050565b5f546001600160a01b03163314806108f457506011546001600160a01b031633145b6109105760405162461bcd60e51b81526004016106db90611faa565b6011805461ffff60b01b1916600160b01b179055565b5f61093284848461156f565b6001600160a01b0384165f908152600a60209081526040808320338452909152902054828110156109b65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106db565b6109c3853385840361144c565b506001949350505050565b335f818152600a602090815260408083206001600160a01b038716845290915281205490916108c8918590610a04908690611fe1565b61144c565b60605f604051806040016040528060098152602001684e6f204c696d69747360b81b81525090506006546007541015610a7557505060408051808201909152601781527f4d6178207478206c696d69747320696e20656666656374000000000000000000602082015290565b919050565b5f546001600160a01b0316331480610a9c57506011546001600160a01b031633145b610ab85760405162461bcd60e51b81526004016106db90611faa565b6001600160a01b038116610b0e5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016106db565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b769190611ff4565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be7919061200b565b505050565b5f546001600160a01b0316331480610c0e57506011546001600160a01b031633145b610c2a5760405162461bcd60e51b81526004016106db90611faa565b6011805461ffff60b01b1916600160b81b179055565b5f546001600160a01b03163314610c695760405162461bcd60e51b81526004016106db90611ec8565b60018160ff1610158015610c815750600a8160ff1611155b610cc55760405162461bcd60e51b815260206004820152601560248201527421b0b71039b2ba10333937b69018903a379018981760591b60448201526064016106db565b60648160ff16600654610cd89190611f11565b610ce29190611f28565b60075550565b5f546001600160a01b03163314610d115760405162461bcd60e51b81526004016106db90611ec8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610d825760405162461bcd60e51b81526004016106db90611ec8565b601154600160c01b900460ff1615610ddc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106db565b6011805464ff000000ff60a01b191664010000000160a01b179055565b5f546001600160a01b03163314610e225760405162461bcd60e51b81526004016106db90611ec8565b600654600755565b5f546001600160a01b0316331480610e4c57506011546001600160a01b031633145b610e685760405162461bcd60e51b81526004016106db90611faa565b60118054911515600160a01b0260ff60a01b19909216919091179055565b60606005805461083b90611f72565b335f908152600a602090815260408083206001600160a01b038616845290915281205482811015610f165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106db565b610f23338585840361144c565b5060019392505050565b5f546001600160a01b0316331480610f4f57506011546001600160a01b031633145b610f6b5760405162461bcd60e51b81526004016106db90611faa565b6001811015610fcc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74207365742062656c6f7720302e303125206f6620746f74616c2060448201526639bab838363c9760c91b60648201526084016106db565b60648111156110295760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f74207365742061626f7665203125206f6620746f74616c2073757060448201526338363c9760e11b60648201526084016106db565b6127108160065461103a9190611f11565b6110449190611f28565b600f55601055565b5f6108c833848461156f565b5f670de0b6b3a764000060075461106f9190611f28565b905090565b5f546001600160a01b031633148061109657506011546001600160a01b031633145b6110b25760405162461bcd60e51b81526004016106db90611faa565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146110fd5760405162461bcd60e51b81526004016106db90611ec8565b8060ff1660010361111557601e600d819055600e5550565b8060ff1660020361112d57600f600d819055600e5550565b8060ff16600303611145576001600d55600f600e5550565b8060ff1660040361021c576001600d819055600e555b50565b5f546001600160a01b031633146111875760405162461bcd60e51b81526004016106db90611ec8565b603c82111580156111995750603c8111155b6111e55760405162461bcd60e51b815260206004820152601d60248201527f54617865732063616e6e6f74206578636565642036302520656163682e00000060448201526064016106db565b600d91909155600e55565b601054601154606091829182908190600160a01b900460ff1615611239575060408051808201909152600e81526d20baba37b9bbb0b81034b99027a760911b6020820152611272565b601154600160a01b900460ff16611272575060408051808201909152600f81526e20baba37b9bbb0b81034b99027a32360891b60208201525b601154600160b01b900460ff16156112a557604051806040016040528060018152602001604560f81b81525091506112d4565b601154600160b81b900460ff16156112d457604051806040016040528060018152602001601560fa1b81525091505b94909350909150565b5f546001600160a01b03163314806112ff57506011546001600160a01b031633145b61131b5760405162461bcd60e51b81526004016106db90611faa565b6040515f90339047908381818185875af1925050503d805f811461135a576040519150601f19603f3d011682016040523d82523d5f602084013e61135f565b606091505b50505050565b5f546001600160a01b0316331461138e5760405162461bcd60e51b81526004016106db90611ec8565b6001600160a01b0381166113f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106db565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166114ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106db565b6001600160a01b03821661150f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106db565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115d35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106db565b6001600160a01b0382166116355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106db565b80611654846001600160a01b03165f9081526008602052604090205490565b10156116955760405162461bcd60e51b815260206004820152601060248201526f115e18d95cdcda5d9948185b5bdd5b9d60821b60448201526064016106db565b305f90815260086020908152604080832054600f546001600160a01b038816855260099093529083205483928210159060ff161580156116ed57506001600160a01b0386165f9081526009602052604090205460ff16155b156117c357601154600160c01b900460ff1661174b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f74206f70656e6564207965742e00000000000000000060448201526064016106db565b6007548511156117c35760405162461bcd60e51b815260206004820152603860248201527f43616e6e6f74207472616e73666572206d6f7265207468616e2063757272656e60448201527f74206d6178207472616e736174696f6e20616d6f756e742e000000000000000060648201526084016106db565b6001600160a01b0387165f9081526009602052604090205460ff168061180057506001600160a01b0386165f9081526009602052604090205460ff165b806118145750601154600160a81b900460ff165b156118b2576001600160a01b0387165f9081526008602052604081208054879290611840908490612026565b90915550506001600160a01b0386165f908152600860205260408120805487929061186c908490611fe1565b92505081905550856001600160a01b0316876001600160a01b03165f805160206120d8833981519152876040516118a591815260200190565b60405180910390a3611aec565b6002546001600160a01b0390811690881603611929576064600d54866118d89190611f11565b6118e29190611f28565b93506118ee8486612026565b601154909350600160a01b900460ff1615611929578080156119195750601154600160b81b900460ff165b1561192957611929600f54611af5565b6002546001600160a01b03908116908716036119cb576064600e548661194f9190611f11565b6119599190611f28565b93506119658486612026565b601154909350600160a01b900460ff16156119cb578080156119905750601154600160b01b900460ff165b156119a5576119a0600f54611b7a565b6119cb565b8080156119bb5750601154600160b81b900460ff165b156119cb576119cb600f54611af5565b6002546001600160a01b038881169116148015906119f757506002546001600160a01b03878116911614155b15611a00578492505b8315611a5757305f9081526008602052604081208054869290611a24908490611fe1565b909155505060405184815230906001600160a01b038916905f805160206120d88339815191529060200160405180910390a35b6001600160a01b0387165f9081526008602052604081208054879290611a7e908490612026565b90915550506001600160a01b0386165f9081526008602052604081208054859290611aaa908490611fe1565b92505081905550856001600160a01b0316876001600160a01b03165f805160206120d883398151915285604051611ae391815260200190565b60405180910390a35b50505050505050565b305f9081526008602052604081208054839290611b13908490612026565b90915550506011546001600160a01b03165f9081526008602052604081208054839290611b41908490611fe1565b90915550506011546040518281526001600160a01b039091169030905f805160206120d88339815191529060200160405180910390a350565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611bc057611bc0612039565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3b919061204d565b81600181518110611c4e57611c4e612039565b6001600160a01b039283166020918202929092010152600154611c74913091168461144c565b60015460115460405163791ac94760e01b81526001600160a01b039283169263791ac94792611cb09287925f9288929116904290600401612068565b5f604051808303815f87803b158015611cc7575f80fd5b505af1925050508015611cd8575060015b5050506011805460ff60a81b19169055565b5f81518084525f5b81811015611d0e57602081850181015186830182015201611cf2565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f611d3f6020830184611cea565b9392505050565b6001600160a01b038116811461115b575f80fd5b5f8060408385031215611d6b575f80fd5b8235611d7681611d46565b946020939093013593505050565b5f805f60608486031215611d96575f80fd5b8335611da181611d46565b92506020840135611db181611d46565b929592945050506040919091013590565b5f60208284031215611dd2575f80fd5b8135611d3f81611d46565b5f60208284031215611ded575f80fd5b813560ff81168114611d3f575f80fd5b801515811461115b575f80fd5b5f60208284031215611e1a575f80fd5b8135611d3f81611dfd565b5f60208284031215611e35575f80fd5b5035919050565b5f8060408385031215611e4d575f80fd5b50508035926020909101359150565b606081525f611e6e6060830186611cea565b8281036020840152611e808186611cea565b915050826040830152949350505050565b5f8060408385031215611ea2575f80fd5b8235611ead81611d46565b91506020830135611ebd81611d46565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108cc576108cc611efd565b5f82611f4257634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611f59575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611f8657607f821691505b602082108103611fa457634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526019908201527f4f6e6c79206f776e657220616e64206d61726b6574696e672e00000000000000604082015260600190565b808201808211156108cc576108cc611efd565b5f60208284031215612004575f80fd5b5051919050565b5f6020828403121561201b575f80fd5b8151611d3f81611dfd565b818103818111156108cc576108cc611efd565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205d575f80fd5b8151611d3f81611d46565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120b65784516001600160a01b031683529383019391830191600101612091565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bc8ec48e80c285e621bc0ec71adfb8b213cd5fb29f6e51d88b68820f7efbb81764736f6c63430008140033
Deployed Bytecode Sourcemap
2984:12672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8881:385;;;;;;;;;;;;;:::i;:::-;;5587:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6313:152;;;;;;;;;;-1:-1:-1;6313:152:0;;;;;:::i;:::-;;:::i;:::-;;;1288:14:1;;1281:22;1263:41;;1251:2;1236:18;6313:152:0;1123:187:1;10874:193:0;;;;;;;;;;;;;:::i;3023:30::-;;;;;;;;;;-1:-1:-1;3023:30:0;;;;-1:-1:-1;;;;;3023:30:0;;;;;;-1:-1:-1;;;;;1494:32:1;;;1476:51;;1464:2;1449:18;3023:30:0;1315:218:1;5817:78:0;;;;;;;;;;-1:-1:-1;5880:12:0;;5817:78;;;1684:25:1;;;1672:2;1657:18;5817:78:0;1538:177:1;6473:475:0;;;;;;;;;;-1:-1:-1;6473:475:0;;;;;:::i;:::-;;:::i;5742:69::-;;;;;;;;;;-1:-1:-1;5799:9:0;;-1:-1:-1;;;5799:9:0;;;;5742:69;;2353:4:1;2341:17;;;2323:36;;2311:2;2296:18;5742:69:0;2181:184:1;6956:207:0;;;;;;;;;;-1:-1:-1;6956:207:0;;;;;:::i;:::-;;:::i;8078:315::-;;;;;;;;;;;;;:::i;3060:28::-;;;;;;;;;;-1:-1:-1;3060:28:0;;;;-1:-1:-1;;;;;3060:28:0;;;11076:369;;;;;;;;;;-1:-1:-1;11076:369:0;;;;;:::i;:::-;;:::i;10670:196::-;;;;;;;;;;;;;:::i;8401:205::-;;;;;;;;;;-1:-1:-1;8401:205:0;;;;;:::i;:::-;;:::i;5901:96::-;;;;;;;;;;-1:-1:-1;5901:96:0;;;;;:::i;:::-;-1:-1:-1;;;;;5976:18:0;5958:7;5976:18;;;:9;:18;;;;;;;5901:96;2575:150;;;;;;;;;;;;;:::i;8707:166::-;;;;;;;;;;;;;:::i;12510:116::-;;;;;;;;;;-1:-1:-1;12598:8:0;;12608:9;;12510:116;;;3278:25:1;;;3334:2;3319:18;;3312:34;;;;3251:18;12510:116:0;3104:248:1;8614:86:0;;;;;;;;;;;;;:::i;3886:75::-;;;;;;;;;;-1:-1:-1;3886:75:0;;;;-1:-1:-1;;;;;3886:75:0;;;2361:79;;;;;;;;;;-1:-1:-1;2399:7:0;2426:6;-1:-1:-1;;;;;2426:6:0;2361:79;;10012:203;;;;;;;;;;-1:-1:-1;10012:203:0;;;;;:::i;:::-;;:::i;5662:74::-;;;;;;;;;;;;;:::i;7171:405::-;;;;;;;;;;-1:-1:-1;7171:405:0;;;;;:::i;:::-;;:::i;10223:439::-;;;;;;;;;;-1:-1:-1;10223:439:0;;;;;:::i;:::-;;:::i;6005:158::-;;;;;;;;;;-1:-1:-1;6005:158:0;;;;;:::i;:::-;;:::i;7964:106::-;;;;;;;;;;;;;:::i;11707:212::-;;;;;;;;;;-1:-1:-1;11707:212:0;;;;;:::i;:::-;;:::i;9516:488::-;;;;;;;;;;-1:-1:-1;9516:488:0;;;;;:::i;:::-;;:::i;9274:234::-;;;;;;;;;;-1:-1:-1;9274:234:0;;;;;:::i;:::-;;:::i;4156:34::-;;;;;;;;;;-1:-1:-1;4156:34:0;;;;-1:-1:-1;;;4156:34:0;;;;;;11927:575;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6171:134::-;;;;;;;;;;-1:-1:-1;6171:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;6270:18:0;;;6243:7;6270:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6171:134;11453:246;;;;;;;;;;;;;:::i;2733:244::-;;;;;;;;;;-1:-1:-1;2733:244:0;;;;;:::i;:::-;;:::i;3095:21::-;;;;;;;;;;-1:-1:-1;3095:21:0;;;;-1:-1:-1;;;;;3095:21:0;;;4118:31;;;;;;;;;;-1:-1:-1;4118:31:0;;;;-1:-1:-1;;;4118:31:0;;;;;;8881:385;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;;;;;;;;;8951:14:::1;::::0;-1:-1:-1;;;8951:14:0;::::1;;;8950:15;8942:58;;;::::0;-1:-1:-1;;;8942:58:0;;5579:2:1;8942:58:0::1;::::0;::::1;5561:21:1::0;5618:2;5598:18;;;5591:30;5657:33;5637:18;;;5630:61;5708:18;;8942:58:0::1;5377:355:1::0;8942:58:0::1;9084:12;::::0;9030:21:::1;::::0;9011:16:::1;::::0;9104:3:::1;::::0;9084:17:::1;::::0;9099:2:::1;9084:17;:::i;:::-;:23;;;;:::i;:::-;9118:15;::::0;9062:45;;-1:-1:-1;;;;;;9118:15:0::1;:31;9157:8:::0;9175:4:::1;9062:45:::0;9118:15:::1;::::0;9201:7:::1;2399::::0;2426:6;-1:-1:-1;;;;;2426:6:0;;2361:79;9201:7:::1;9118:108;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9118:108:0;;;-1:-1:-1;;;;;6623:15:1;;;9118:108:0::1;::::0;::::1;6605:34:1::0;6655:18;;;6648:34;;;;6698:18;;;6691:34;;;;6741:18;;;6734:34;6805:15;;;6784:19;;;6777:44;9210:15:0::1;6837:19:1::0;;;6830:35;6539:19;;9118:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9237:14:0::1;:21:::0;;-1:-1:-1;;;;9237:21:0::1;-1:-1:-1::0;;;9237:21:0::1;::::0;;-1:-1:-1;;;8881:385:0:o;5587:69::-;5624:13;5648:5;5641:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:69;:::o;6313:152::-;6379:4;6396:39;1773:10;6419:7;6428:6;6396:8;:39::i;:::-;-1:-1:-1;6453:4:0;6313:152;;;;;:::o;10874:193::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10918:10;:21;;:54;;-1:-1:-1;10957:15:0;;-1:-1:-1;;;;;10957:15:0;10943:10;:29;10918:54;10910:92;;;;-1:-1:-1;;;10910:92:0;;;;;;;:::i;:::-;11013:10;:17;;-1:-1:-1;;;;11041:18:0;-1:-1:-1;;;11041:18:0;;;10874:193::o;6473:475::-;6596:4;6613:36;6623:6;6631:9;6642:6;6613:9;:36::i;:::-;-1:-1:-1;;;;;6689:19:0;;6662:24;6689:19;;;:11;:19;;;;;;;;1773:10;6689:33;;;;;;;;6741:26;;;;6733:79;;;;-1:-1:-1;;;6733:79:0;;8128:2:1;6733:79:0;;;8110:21:1;8167:2;8147:18;;;8140:30;8206:34;8186:18;;;8179:62;-1:-1:-1;;;8257:18:1;;;8250:38;8305:19;;6733:79:0;7926:404:1;6733:79:0;6848:57;6857:6;1773:10;6898:6;6879:16;:25;6848:8;:57::i;:::-;-1:-1:-1;6936:4:0;;6473:475;-1:-1:-1;;;;6473:475:0:o;6956:207::-;1773:10;7036:4;7085:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7085:34:0;;;;;;;;;;7036:4;;7053:80;;7076:7;;7085:47;;7122:10;;7085:47;:::i;:::-;7053:8;:80::i;8078:315::-;8121:13;8147:27;:41;;;;;;;;;;;;;-1:-1:-1;;;8147:41:0;;;;;8216:12;;8202:11;;:26;8199:187;;;-1:-1:-1;;8245:41:0;;;;;;;;;;;;;;;;;;8078:315::o;8199:187::-;8361:13;8078:315;-1:-1:-1;8078:315:0:o;11076:369::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11142:10;:21;;:54;;-1:-1:-1;11181:15:0;;-1:-1:-1;;;;;11181:15:0;11167:10;:29;11142:54;11134:92;;;;-1:-1:-1;;;11134:92:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11245:20:0;;11237:59;;;;-1:-1:-1;;;11237:59:0;;8667:2:1;11237:59:0;;;8649:21:1;8706:2;8686:18;;;8679:30;8745:28;8725:18;;;8718:56;8791:18;;11237:59:0;8465:350:1;11237:59:0;11334:39;;-1:-1:-1;;;11334:39:0;;11367:4;11334:39;;;1476:51:1;11307:24:0;;-1:-1:-1;;;;;11334:24:0;;;;;1449:18:1;;11334:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11384:53;;-1:-1:-1;;;11384:53:0;;11408:10;11384:53;;;9183:51:1;9250:18;;;9243:34;;;11307:66:0;;-1:-1:-1;;;;;;11384:23:0;;;;;9156:18:1;;11384:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11123:322;11076:369;:::o;10670:196::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10717:10;:21;;:54;;-1:-1:-1;10756:15:0;;-1:-1:-1;;;;;10756:15:0;10742:10;:29;10717:54;10709:92;;;;-1:-1:-1;;;10709:92:0;;;;;;;:::i;:::-;10812:10;:17;;-1:-1:-1;;;;10840:18:0;-1:-1:-1;;;10840:18:0;;;10670:196::o;8401:205::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8491:1:::1;8475:12;:17;;;;:39;;;;;8512:2;8496:12;:18;;;;8475:39;8467:73;;;::::0;-1:-1:-1;;;8467:73:0;;9740:2:1;8467:73:0::1;::::0;::::1;9722:21:1::0;9779:2;9759:18;;;9752:30;-1:-1:-1;;;9798:18:1;;;9791:51;9859:18;;8467:73:0::1;9538:345:1::0;8467:73:0::1;8595:3;8580:12;8565:27;;:12;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;8551:11;:47:::0;-1:-1:-1;8401:205:0:o;2575:150::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;2684:1:::1;2668:6:::0;;2647:40:::1;::::0;-1:-1:-1;;;;;2668:6:0;;::::1;::::0;2647:40:::1;::::0;2684:1;;2647:40:::1;2715:1;2698:19:::0;;-1:-1:-1;;;;;;2698:19:0::1;::::0;;2575:150::o;8707:166::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8767:11:::1;::::0;-1:-1:-1;;;8767:11:0;::::1;;;8766:12;8758:47;;;::::0;-1:-1:-1;;;8758:47:0;;10090:2:1;8758:47:0::1;::::0;::::1;10072:21:1::0;10129:2;10109:18;;;10102:30;10168:25;10148:18;;;10141:53;10211:18;;8758:47:0::1;9888:347:1::0;8758:47:0::1;8816:11;:18:::0;;-1:-1:-1;;;;8845:20:0;-1:-1:-1;;;8845:20:0;;;8707:166::o;8614:86::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;8680:12:::1;::::0;8666:11:::1;:26:::0;8614:86::o;10012:203::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10081:10;:21;;:54;;-1:-1:-1;10120:15:0;;-1:-1:-1;;;;;10120:15:0;10106:10;:29;10081:54;10073:92;;;;-1:-1:-1;;;10073:92:0;;;;;;;:::i;:::-;10176:13;:31;;;;;-1:-1:-1;;;10176:31:0;-1:-1:-1;;;;10176:31:0;;;;;;;;;10012:203::o;5662:74::-;5702:13;5726:7;5719:14;;;;;:::i;7171:405::-;1773:10;7256:4;7300:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7300:34:0;;;;;;;;;;7353:35;;;;7345:85;;;;-1:-1:-1;;;7345:85:0;;10442:2:1;7345:85:0;;;10424:21:1;10481:2;10461:18;;;10454:30;10520:34;10500:18;;;10493:62;-1:-1:-1;;;10571:18:1;;;10564:35;10616:19;;7345:85:0;10240:401:1;7345:85:0;7466:67;1773:10;7489:7;7517:15;7498:16;:34;7466:8;:67::i;:::-;-1:-1:-1;7564:4:0;;7171:405;-1:-1:-1;;;7171:405:0:o;10223:439::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;10298:10;:21;;:54;;-1:-1:-1;10337:15:0;;-1:-1:-1;;;;;10337:15:0;10323:10;:29;10298:54;10290:92;;;;-1:-1:-1;;;10290:92:0;;;;;;;:::i;:::-;10418:1;10401:13;:18;;10393:70;;;;-1:-1:-1;;;10393:70:0;;10848:2:1;10393:70:0;;;10830:21:1;10887:2;10867:18;;;10860:30;10926:34;10906:18;;;10899:62;-1:-1:-1;;;10977:18:1;;;10970:37;11024:19;;10393:70:0;10646:403:1;10393:70:0;10499:3;10482:13;:20;;10474:69;;;;-1:-1:-1;;;10474:69:0;;11256:2:1;10474:69:0;;;11238:21:1;11295:2;11275:18;;;11268:30;11334:34;11314:18;;;11307:62;-1:-1:-1;;;11385:18:1;;;11378:34;11429:19;;10474:69:0;11054:400:1;10474:69:0;10606:5;10590:13;10575:12;;:28;;;;:::i;:::-;:36;;;;:::i;:::-;10554:18;:57;10622:16;:32;10223:439::o;6005:158::-;6074:4;6091:42;1773:10;6115:9;6126:6;6091:9;:42::i;7964:106::-;8017:7;8058:4;8044:11;;:18;;;;:::i;:::-;8037:25;;7964:106;:::o;11707:212::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11786:10;:21;;:54;;-1:-1:-1;11825:15:0;;-1:-1:-1;;;;;11825:15:0;11811:10;:29;11786:54;11778:92;;;;-1:-1:-1;;;11778:92:0;;;;;;;:::i;:::-;11881:15;:30;;-1:-1:-1;;;;;;11881:30:0;-1:-1:-1;;;;;11881:30:0;;;;;;;;;;11707:212::o;9516:488::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;9584:11:::1;:16;;9599:1;9584:16:::0;9581:416:::1;;9628:2;9617:8;:13:::0;;;9645:9:::1;:14:::0;9516:488;:::o;9581:416::-:1;9680:11;:16;;9695:1;9680:16:::0;9677:320:::1;;9724:2;9713:8;:13:::0;;;9741:9:::1;:14:::0;9516:488;:::o;9677:320::-:1;9776:11;:16;;9791:1;9776:16:::0;9773:224:::1;;9820:1;9809:8;:12:::0;9848:2:::1;9836:9;:14:::0;9516:488;:::o;9773:224::-:1;9871:11;:16;;9886:1;9871:16:::0;9868:129:::1;;9915:1;9904:8;:12:::0;;;9931:9:::1;:13:::0;9868:129:::1;9516:488:::0;:::o;9274:234::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;9380:2:::1;9367:9;:15;;:35;;;;;9400:2;9386:10;:16;;9367:35;9359:77;;;::::0;-1:-1:-1;;;9359:77:0;;11661:2:1;9359:77:0::1;::::0;::::1;11643:21:1::0;11700:2;11680:18;;;11673:30;11739:31;11719:18;;;11712:59;11788:18;;9359:77:0::1;11459:353:1::0;9359:77:0::1;9447:8;:20:::0;;;;9478:9:::1;:22:::0;9274:234::o;11927:575::-;12123:16;;12155:13;;11975;;;;;;;;-1:-1:-1;;;12155:13:0;;;;12152:158;;;-1:-1:-1;12185:30:0;;;;;;;;;;;;-1:-1:-1;;;12185:30:0;;;;12152:158;;;12237:13;;-1:-1:-1;;;12237:13:0;;;;12233:77;;-1:-1:-1;12267:31:0;;;;;;;;;;;;-1:-1:-1;;;12267:31:0;;;;12233:77;12325:10;;-1:-1:-1;;;12325:10:0;;;;12322:116;;;12352:13;;;;;;;;;;;;;-1:-1:-1;;;12352:13:0;;;;;12322:116;;;12386:10;;-1:-1:-1;;;12386:10:0;;;;12383:55;;;12413:13;;;;;;;;;;;;;-1:-1:-1;;;12413:13:0;;;;;12383:55;12458:11;12471:7;;-1:-1:-1;11927:575:0;;-1:-1:-1;11927:575:0:o;11453:246::-;2399:7;2426:6;-1:-1:-1;;;;;2426:6:0;11502:10;:21;;:54;;-1:-1:-1;11541:15:0;;-1:-1:-1;;;;;11541:15:0;11527:10;:29;11502:54;11494:92;;;;-1:-1:-1;;;11494:92:0;;;;;;;:::i;:::-;11633:58;;11597:12;;11641:10;;11665:21;;11597:12;11633:58;11597:12;11633:58;11665:21;11641:10;11633:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;11453:246:0:o;2733:244::-;2488:6;;-1:-1:-1;;;;;2488:6:0;1773:10;2488:22;2480:67;;;;-1:-1:-1;;;2480:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2822:22:0;::::1;2814:73;;;::::0;-1:-1:-1;;;2814:73:0;;12229:2:1;2814:73:0::1;::::0;::::1;12211:21:1::0;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:1;;;12351:36;12404:19;;2814:73:0::1;12027:402:1::0;2814:73:0::1;2924:6;::::0;;2903:38:::1;::::0;-1:-1:-1;;;;;2903:38:0;;::::1;::::0;2924:6;::::1;::::0;2903:38:::1;::::0;::::1;2952:6;:17:::0;;-1:-1:-1;;;;;;2952:17:0::1;-1:-1:-1::0;;;;;2952:17:0;;;::::1;::::0;;;::::1;::::0;;2733:244::o;7584:372::-;-1:-1:-1;;;;;7712:19:0;;7704:68;;;;-1:-1:-1;;;7704:68:0;;12636:2:1;7704:68:0;;;12618:21:1;12675:2;12655:18;;;12648:30;12714:34;12694:18;;;12687:62;-1:-1:-1;;;12765:18:1;;;12758:34;12809:19;;7704:68:0;12434:400:1;7704:68:0;-1:-1:-1;;;;;7791:21:0;;7783:68;;;;-1:-1:-1;;;7783:68:0;;13041:2:1;7783:68:0;;;13023:21:1;13080:2;13060:18;;;13053:30;13119:34;13099:18;;;13092:62;-1:-1:-1;;;13170:18:1;;;13163:32;13212:19;;7783:68:0;12839:398:1;7783:68:0;-1:-1:-1;;;;;7864:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7916:32;;1684:25:1;;;7916:32:0;;1657:18:1;7916:32:0;;;;;;;7584:372;;;:::o;12864:2307::-;-1:-1:-1;;;;;12953:18:0;;12945:68;;;;-1:-1:-1;;;12945:68:0;;13444:2:1;12945:68:0;;;13426:21:1;13483:2;13463:18;;;13456:30;13522:34;13502:18;;;13495:62;-1:-1:-1;;;13573:18:1;;;13566:35;13618:19;;12945:68:0;13242:401:1;12945:68:0;-1:-1:-1;;;;;13032:16:0;;13024:64;;;;-1:-1:-1;;;13024:64:0;;13850:2:1;13024:64:0;;;13832:21:1;13889:2;13869:18;;;13862:30;13928:34;13908:18;;;13901:62;-1:-1:-1;;;13979:18:1;;;13972:33;14022:19;;13024:64:0;13648:399:1;13024:64:0;13126:6;13107:15;13117:4;-1:-1:-1;;;;;5976:18:0;5958:7;5976:18;;;:9;:18;;;;;;;5901:96;13107:15;:25;;13099:54;;;;-1:-1:-1;;;13099:54:0;;14254:2:1;13099:54:0;;;14236:21:1;14293:2;14273:18;;;14266:30;-1:-1:-1;;;14312:18:1;;;14305:46;14368:18;;13099:54:0;14052:340:1;13099:54:0;13272:4;13166:12;5976:18;;;:9;:18;;;;;;;;;13326;;-1:-1:-1;;;;;13361:25:0;;;;:19;:25;;;;;;;13166:12;;13306:38;;;;13361:25;;13360:26;:54;;;;-1:-1:-1;;;;;;13391:23:0;;;;;;:19;:23;;;;;;;;13390:24;13360:54;13357:238;;;13439:11;;-1:-1:-1;;;13439:11:0;;;;13431:47;;;;-1:-1:-1;;;13431:47:0;;14599:2:1;13431:47:0;;;14581:21:1;14638:2;14618:18;;;14611:30;14677:25;14657:18;;;14650:53;14720:18;;13431:47:0;14397:347:1;13431:47:0;13511:11;;13501:6;:21;;13493:90;;;;-1:-1:-1;;;13493:90:0;;14951:2:1;13493:90:0;;;14933:21:1;14990:2;14970:18;;;14963:30;15029:34;15009:18;;;15002:62;15100:26;15080:18;;;15073:54;15144:19;;13493:90:0;14749:420:1;13493:90:0;-1:-1:-1;;;;;13610:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13639:23:0;;;;;;:19;:23;;;;;;;;13610:52;:72;;;-1:-1:-1;13666:16:0;;-1:-1:-1;;;13666:16:0;;;;13610:72;13607:1548;;;-1:-1:-1;;;;;13699:15:0;;;;;;:9;:15;;;;;:25;;13718:6;;13699:15;:25;;13718:6;;13699:25;:::i;:::-;;;;-1:-1:-1;;;;;;;13739:13:0;;;;;;:9;:13;;;;;:23;;13756:6;;13739:13;:23;;13756:6;;13739:23;:::i;:::-;;;;;;;;13797:2;-1:-1:-1;;;;;13782:26:0;13791:4;-1:-1:-1;;;;;13782:26:0;-1:-1:-1;;;;;;;;;;;13801:6:0;13782:26;;;;1684:25:1;;1672:2;1657:18;;1538:177;13782:26:0;;;;;;;;13607:1548;;;13854:13;;-1:-1:-1;;;;;13854:13:0;;;13846:21;;;;13843:333;;13915:3;13904:8;;13895:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;13888:30;-1:-1:-1;13959:13:0;13888:30;13959:6;:13;:::i;:::-;13994;;13937:35;;-1:-1:-1;;;;13994:13:0;;;;13991:170;;;14035:9;:23;;;;-1:-1:-1;14048:10:0;;-1:-1:-1;;;14048:10:0;;;;14035:23;14032:110;;;14087:31;14099:18;;14087:11;:31::i;:::-;14201:13;;-1:-1:-1;;;;;14201:13:0;;;14195:19;;;;14192:517;;14263:3;14251:9;;14242:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;14235:31;-1:-1:-1;14307:13:0;14235:31;14307:6;:13;:::i;:::-;14406;;14285:35;;-1:-1:-1;;;;14406:13:0;;;;14403:291;;;14447:9;:23;;;;-1:-1:-1;14460:10:0;;-1:-1:-1;;;14460:10:0;;;;14447:23;14444:231;;;14499:36;14516:18;;14499:16;:36::i;:::-;14444:231;;;14568:9;:23;;;;-1:-1:-1;14581:10:0;;-1:-1:-1;;;14581:10:0;;;;14568:23;14565:110;;;14620:31;14632:18;;14620:11;:31::i;:::-;14736:13;;-1:-1:-1;;;;;14728:21:0;;;14736:13;;14728:21;;;;:44;;-1:-1:-1;14759:13:0;;-1:-1:-1;;;;;14753:19:0;;;14759:13;;14753:19;;14728:44;14725:112;;;14815:6;14793:28;;14725:112;14856:8;;14853:139;;14903:4;14885:24;;;;:9;:24;;;;;:32;;14913:4;;14885:24;:32;;14913:4;;14885:32;:::i;:::-;;;;-1:-1:-1;;14941:35:0;;1684:25:1;;;14964:4:0;;-1:-1:-1;;;;;14941:35:0;;;-1:-1:-1;;;;;;;;;;;14941:35:0;1672:2:1;1657:18;14941:35:0;;;;;;;14853:139;-1:-1:-1;;;;;15008:15:0;;;;;;:9;:15;;;;;:25;;15027:6;;15008:15;:25;;15027:6;;15008:25;:::i;:::-;;;;-1:-1:-1;;;;;;;15048:13:0;;;;;;:9;:13;;;;;:36;;15065:19;;15048:13;:36;;15065:19;;15048:36;:::i;:::-;;;;;;;;15119:2;-1:-1:-1;;;;;15104:39:0;15113:4;-1:-1:-1;;;;;15104:39:0;-1:-1:-1;;;;;;;;;;;15123:19:0;15104:39;;;;1684:25:1;;1672:2;1657:18;;1538:177;15104:39:0;;;;;;;;13607:1548;12934:2237;;;;12864:2307;;;:::o;12634:222::-;12712:4;12694:24;;;;:9;:24;;;;;:37;;12722:9;;12694:24;:37;;12722:9;;12694:37;:::i;:::-;;;;-1:-1:-1;;12752:15:0;;-1:-1:-1;;;;;12752:15:0;12742:26;;;;:9;:26;;;;;:39;;12772:9;;12742:26;:39;;12772:9;;12742:39;:::i;:::-;;;;-1:-1:-1;;12821:15:0;;12797:51;;1684:25:1;;;-1:-1:-1;;;;;12821:15:0;;;;12814:4;;-1:-1:-1;;;;;;;;;;;12797:51:0;1672:2:1;1657:18;12797:51:0;;;;;;;12634:222;:::o;15179:472::-;5466:16;:23;;-1:-1:-1;;;;5466:23:0;-1:-1:-1;;;5466:23:0;;;15281:16:::1;::::0;;15295:1:::1;15281:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15281:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15281:16:0::1;15257:40;;15326:4;15308;15313:1;15308:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15308:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15352:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15352:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15308:7;;15352:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15342:4;15347:1;15342:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15342:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15417:15:::1;::::0;15385:62:::1;::::0;15402:4:::1;::::0;15417:15:::1;15435:11:::0;15385:8:::1;:62::i;:::-;15510:15;::::0;15599::::1;::::0;15510:122:::1;::::0;-1:-1:-1;;;15510:122:0;;-1:-1:-1;;;;;15510:15:0;;::::1;::::0;:66:::1;::::0;:122:::1;::::0;15577:11;;15510:15:::1;::::0;15593:4;;15599:15;::::1;::::0;15616::::1;::::0;15510:122:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15506:138:::0;-1:-1:-1;;5512:16:0;:24;;-1:-1:-1;;;;5512:24:0;;;15179:472::o;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;:::-;603:53;442:220;-1:-1:-1;;;442:220:1:o;667:131::-;-1:-1:-1;;;;;742:31:1;;732:42;;722:70;;788:1;785;778:12;803:315;871:6;879;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;987:9;974:23;1006:31;1031:5;1006:31;:::i;:::-;1056:5;1108:2;1093:18;;;;1080:32;;-1:-1:-1;;;803:315:1:o;1720:456::-;1797:6;1805;1813;1866:2;1854:9;1845:7;1841:23;1837:32;1834:52;;;1882:1;1879;1872:12;1834:52;1921:9;1908:23;1940:31;1965:5;1940:31;:::i;:::-;1990:5;-1:-1:-1;2047:2:1;2032:18;;2019:32;2060:33;2019:32;2060:33;:::i;:::-;1720:456;;2112:7;;-1:-1:-1;;;2166:2:1;2151:18;;;;2138:32;;1720:456::o;2578:247::-;2637:6;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2745:9;2732:23;2764:31;2789:5;2764:31;:::i;2830:269::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;2995:9;2982:23;3045:4;3038:5;3034:16;3027:5;3024:27;3014:55;;3065:1;3062;3055:12;3357:118;3443:5;3436:13;3429:21;3422:5;3419:32;3409:60;;3465:1;3462;3455:12;3480:241;3536:6;3589:2;3577:9;3568:7;3564:23;3560:32;3557:52;;;3605:1;3602;3595:12;3557:52;3644:9;3631:23;3663:28;3685:5;3663:28;:::i;3726:180::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:23:1;;3726:180;-1:-1:-1;3726:180:1:o;3911:248::-;3979:6;3987;4040:2;4028:9;4019:7;4015:23;4011:32;4008:52;;;4056:1;4053;4046:12;4008:52;-1:-1:-1;;4079:23:1;;;4149:2;4134:18;;;4121:32;;-1:-1:-1;3911:248:1:o;4164:454::-;4389:2;4378:9;4371:21;4352:4;4415:45;4456:2;4445:9;4441:18;4433:6;4415:45;:::i;:::-;4508:9;4500:6;4496:22;4491:2;4480:9;4476:18;4469:50;4536:33;4562:6;4554;4536:33;:::i;:::-;4528:41;;;4605:6;4600:2;4589:9;4585:18;4578:34;4164:454;;;;;;:::o;4623:388::-;4691:6;4699;4752:2;4740:9;4731:7;4727:23;4723:32;4720:52;;;4768:1;4765;4758:12;4720:52;4807:9;4794:23;4826:31;4851:5;4826:31;:::i;:::-;4876:5;-1:-1:-1;4933:2:1;4918:18;;4905:32;4946:33;4905:32;4946:33;:::i;:::-;4998:7;4988:17;;;4623:388;;;;;:::o;5016:356::-;5218:2;5200:21;;;5237:18;;;5230:30;5296:34;5291:2;5276:18;;5269:62;5363:2;5348:18;;5016:356::o;5737:127::-;5798:10;5793:3;5789:20;5786:1;5779:31;5829:4;5826:1;5819:15;5853:4;5850:1;5843:15;5869:168;5942:9;;;5973;;5990:15;;;5984:22;;5970:37;5960:71;;6011:18;;:::i;6042:217::-;6082:1;6108;6098:132;;6152:10;6147:3;6143:20;6140:1;6133:31;6187:4;6184:1;6177:15;6215:4;6212:1;6205:15;6098:132;-1:-1:-1;6244:9:1;;6042:217::o;6876:306::-;6964:6;6972;6980;7033:2;7021:9;7012:7;7008:23;7004:32;7001:52;;;7049:1;7046;7039:12;7001:52;7078:9;7072:16;7062:26;;7128:2;7117:9;7113:18;7107:25;7097:35;;7172:2;7161:9;7157:18;7151:25;7141:35;;6876:306;;;;;:::o;7187:380::-;7266:1;7262:12;;;;7309;;;7330:61;;7384:4;7376:6;7372:17;7362:27;;7330:61;7437:2;7429:6;7426:14;7406:18;7403:38;7400:161;;7483:10;7478:3;7474:20;7471:1;7464:31;7518:4;7515:1;7508:15;7546:4;7543:1;7536:15;7400:161;;7187:380;;;:::o;7572:349::-;7774:2;7756:21;;;7813:2;7793:18;;;7786:30;7852:27;7847:2;7832:18;;7825:55;7912:2;7897:18;;7572:349::o;8335:125::-;8400:9;;;8421:10;;;8418:36;;;8434:18;;:::i;8820:184::-;8890:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:52;;;8959:1;8956;8949:12;8911:52;-1:-1:-1;8982:16:1;;8820:184;-1:-1:-1;8820:184:1:o;9288:245::-;9355:6;9408:2;9396:9;9387:7;9383:23;9379:32;9376:52;;;9424:1;9421;9414:12;9376:52;9456:9;9450:16;9475:28;9497:5;9475:28;:::i;15174:128::-;15241:9;;;15262:11;;;15259:37;;;15276:18;;:::i;15439:127::-;15500:10;15495:3;15491:20;15488:1;15481:31;15531:4;15528:1;15521:15;15555:4;15552:1;15545:15;15571:251;15641:6;15694:2;15682:9;15673:7;15669:23;15665:32;15662:52;;;15710:1;15707;15700:12;15662:52;15742:9;15736:16;15761:31;15786:5;15761:31;:::i;15827:980::-;16089:4;16137:3;16126:9;16122:19;16168:6;16157:9;16150:25;16194:2;16232:6;16227:2;16216:9;16212:18;16205:34;16275:3;16270:2;16259:9;16255:18;16248:31;16299:6;16334;16328:13;16365:6;16357;16350:22;16403:3;16392:9;16388:19;16381:26;;16442:2;16434:6;16430:15;16416:29;;16463:1;16473:195;16487:6;16484:1;16481:13;16473:195;;;16552:13;;-1:-1:-1;;;;;16548:39:1;16536:52;;16643:15;;;;16608:12;;;;16584:1;16502:9;16473:195;;;-1:-1:-1;;;;;;;16724:32:1;;;;16719:2;16704:18;;16697:60;-1:-1:-1;;;16788:3:1;16773:19;16766:35;16685:3;15827:980;-1:-1:-1;;;15827:980:1:o
Swarm Source
ipfs://bc8ec48e80c285e621bc0ec71adfb8b213cd5fb29f6e51d88b68820f7efbb817
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.