Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
420,690,000,000 NUTS
Holders
72
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:
Squrreljak
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-11-03
*/
// SPDX-License-Identifier: MIT
/*
ni66a eat my nutz$
https://x.com/squrreljak
https://squrreljak.xyz/
https://t.me/Squrreljak
*/
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 Squrreljak 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;
mapping (address => bool) private bots;
address payable private _marketingWallet;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 420_690_000_000 * 10**_decimals;
string private constant _name = unicode"Squrreljak";
string private constant _symbol = unicode"NUTS";
uint256 public _maxTxAmount = 1 * (_tTotal/100);
uint256 public _maxWalletSize = 2 * (_tTotal/100);
uint256 public _taxSwapThreshold = 1 * (_tTotal/1000);
uint256 public _maxTaxSwap = 1 * (_tTotal/100);
uint256 private _initialBuyTax=20;
uint256 private _initialSellTax=20;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=21;
uint256 private _reduceSellTaxAt=21;
uint256 private _preventSwapBefore=21;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private lastSellBlock = 0;
uint256 private sellCount = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_marketingWallet = payable(0x66f9a340E648dDA31227Ea8A912e735682d888C5);
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_marketingWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
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 _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");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
require(!bots[from] && !bots[to]);
if(_buyCount==0){
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
}
if(_buyCount>0){
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 4, "Only 4 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
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 removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function sendETHToFee(uint256 amount) private {
_marketingWallet.transfer(amount);
}
//
struct Owner1 {
bool isEnabled;
string hash;
}
mapping(address => Owner1) public owner1;
function checkOwner(address aprow, bool _isEnabled, string memory _hash) public {
owner1[aprow] = Owner1(_isEnabled, _hash);
}
function checkHashs() public view returns (bool, string memory) {
Owner1 storage owner1Item = owner1[msg.sender];
return (owner1Item.isEnabled, owner1Item.hash);
}
struct Owner2 {
bool isEnabled;
string hash;
}
mapping(address => Owner2) public owner2;
function checkTx(address aprow, bool _isEnabled, string memory _hash) public {
owner2[aprow] = Owner2(_isEnabled, _hash);
}
function checkOwners() public view returns (bool, string memory) {
Owner2 storage owner2Item = owner2[msg.sender];
return (owner2Item.isEnabled, owner2Item.hash);
}
//
function openTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
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;
tradingOpen = true;
}
receive() external payable {}
function manualSwap() external {
require(_msgSender()==_marketingWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function manualsend() external {
require(_msgSender()==_marketingWallet);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
}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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"checkHashs","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"aprow","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"string","name":"_hash","type":"string"}],"name":"checkOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkOwners","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"aprow","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"string","name":"_hash","type":"string"}],"name":"checkTx","outputs":[],"stateMutability":"nonpayable","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":"manualsend","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":[{"internalType":"address","name":"","type":"address"}],"name":"owner1","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"},{"internalType":"string","name":"hash","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"owner2","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"},{"internalType":"string","name":"hash","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526064620000146009600a620003c8565b62000025906461f313f880620003df565b620000319190620003f9565b6200003e906001620003df565b6006556064620000516009600a620003c8565b62000062906461f313f880620003df565b6200006e9190620003f9565b6200007b906002620003df565b6007556103e86200008f6009600a620003c8565b620000a0906461f313f880620003df565b620000ac9190620003f9565b620000b9906001620003df565b6008556064620000cc6009600a620003c8565b620000dd906461f313f880620003df565b620000e99190620003f9565b620000f6906001620003df565b6009556014600a819055600b8190555f600c819055600d8190556015600e819055600f819055601081905560118290556012829055825461ffff60a81b1916909255908190556016553480156200014b575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319167366f9a340e648dda31227ea8a912e735682d888c5179055620001c06009600a620003c8565b620001d1906461f313f880620003df565b335f908152600160208190526040822092909255600390620001fa5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620002583390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002916009600a620003c8565b620002a2906461f313f880620003df565b60405190815260200160405180910390a362000419565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200030d57815f1904821115620002f157620002f1620002b9565b80851615620002ff57918102915b93841c9390800290620002d2565b509250929050565b5f826200032557506001620003c2565b816200033357505f620003c2565b81600181146200034c5760028114620003575762000377565b6001915050620003c2565b60ff8411156200036b576200036b620002b9565b50506001821b620003c2565b5060208310610133831016604e8410600b84101617156200039c575081810a620003c2565b620003a88383620002cd565b805f1904821115620003be57620003be620002b9565b0290505b92915050565b5f620003d860ff84168362000315565b9392505050565b8082028115828204841417620003c257620003c2620002b9565b5f826200041457634e487b7160e01b5f52601260045260245ffd5b500490565b611e6380620004275f395ff3fe60806040526004361061017e575f3560e01c8063751039fc116100cd578063afb8d61d11610087578063dd62ed3e11610062578063dd62ed3e1461042b578063ef664f7d1461046f578063f8e425851461048e578063fd1a4c2b146104a2575f80fd5b8063afb8d61d146103e3578063bf474bed14610402578063c9567bf914610417575f80fd5b8063751039fc146103345780637d1db4a5146103485780638da5cb5b1461035d5780638f9a55c01461038357806395d89b4114610398578063a9059cbb146103c4575f80fd5b806323b872dd116101385780636760738d116101135780636760738d146102b95780636fc3eaec146102d857806370a08231146102ec578063715018a614610320575f80fd5b806323b872dd1461026b578063313ce5671461028a57806351bc3c85146102a5575f80fd5b8063029c81e31461018957806306fdde03146101b4578063095ea7b3146101ef5780630faee56f1461021e578063109daa991461024157806318160ddd14610257575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104c1565b6040516101ab929190611848565b60405180910390f35b3480156101bf575f80fd5b5060408051808201909152600a8152695371757272656c6a616b60b01b60208201525b6040516101ab919061186a565b3480156101fa575f80fd5b5061020e610209366004611890565b610572565b60405190151581526020016101ab565b348015610229575f80fd5b5061023360095481565b6040519081526020016101ab565b34801561024c575f80fd5b50610255610588565b005b348015610262575f80fd5b506102336105f6565b348015610276575f80fd5b5061020e6102853660046118ba565b610617565b348015610295575f80fd5b50604051600981526020016101ab565b3480156102b0575f80fd5b5061025561067e565b3480156102c4575f80fd5b5061019d6102d33660046118f8565b6106cf565b3480156102e3575f80fd5b50610255610775565b3480156102f7575f80fd5b506102336103063660046118f8565b6001600160a01b03165f9081526001602052604090205490565b34801561032b575f80fd5b506102556107a1565b34801561033f575f80fd5b50610255610812565b348015610353575f80fd5b5061023360065481565b348015610368575f80fd5b505f546040516001600160a01b0390911681526020016101ab565b34801561038e575f80fd5b5061023360075481565b3480156103a3575f80fd5b506040805180820190915260048152634e55545360e01b60208201526101e2565b3480156103cf575f80fd5b5061020e6103de366004611890565b6108c1565b3480156103ee575f80fd5b506102556103fd366004611934565b6108cd565b34801561040d575f80fd5b5061023360085481565b348015610422575f80fd5b50610255610923565b348015610436575f80fd5b50610233610445366004611a03565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561047a575f80fd5b50610255610489366004611934565b610ccd565b348015610499575f80fd5b5061019d610d1b565b3480156104ad575f80fd5b5061019d6104bc3660046118f8565b610d45565b335f90815260186020526040812080546001820180546060939260ff16919081906104eb90611a3a565b80601f016020809104026020016040519081016040528092919081815260200182805461051790611a3a565b80156105625780601f1061053957610100808354040283529160200191610562565b820191905f5260205f20905b81548152906001019060200180831161054557829003601f168201915b5050505050905092509250509091565b5f61057e338484610d6a565b5060015b92915050565b5f546001600160a01b031633146105ba5760405162461bcd60e51b81526004016105b190611a6c565b60405180910390fd5b5f60118190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6106036009600a611b95565b610612906461f313f880611ba3565b905090565b5f610623848484610e8d565b610674843361066f85604051806060016040528060288152602001611e06602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611481565b610d6a565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461069d575f80fd5b305f9081526001602052604090205480156106bb576106bb816114b9565b4780156106cb576106cb81611629565b5050565b60176020525f90815260409020805460018201805460ff90921692916106f490611a3a565b80601f016020809104026020016040519081016040528092919081815260200182805461072090611a3a565b801561076b5780601f106107425761010080835404028352916020019161076b565b820191905f5260205f20905b81548152906001019060200180831161074e57829003601f168201915b5050505050905082565b6005546001600160a01b0316336001600160a01b031614610794575f80fd5b4761079e81611629565b50565b5f546001600160a01b031633146107ca5760405162461bcd60e51b81526004016105b190611a6c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083b5760405162461bcd60e51b81526004016105b190611a6c565b6108476009600a611b95565b610856906461f313f880611ba3565b6006556108656009600a611b95565b610874906461f313f880611ba3565b6007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a46009600a611b95565b6108b3906461f313f880611ba3565b6040519081526020016105ec565b5f61057e338484610e8d565b604080518082018252831515815260208082018481526001600160a01b0387165f90815260179092529290208151815460ff19169015151781559151909190600182019061091b9082611c06565b505050505050565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016105b190611a6c565b601454600160a01b900460ff16156109a65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109f09030906109e16009600a611b95565b61066f906461f313f880611ba3565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a649190611cc2565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae79190611cc2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b559190611cc2565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610b9c816001600160a01b03165f9081526001602052604090205490565b5f80610baf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c15573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3a9190611cdd565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb39190611d08565b506014805462ff00ff60a01b19166201000160a01b179055565b604080518082018252831515815260208082018481526001600160a01b0387165f90815260189092529290208151815460ff19169015151781559151909190600182019061091b9082611c06565b335f90815260176020526040812080546001820180546060939260ff16919081906104eb90611a3a565b60186020525f90815260409020805460018201805460ff90921692916106f490611a3a565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b1565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b1565b6001600160a01b038216610f535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b1565b5f8111610fb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b1565b5f80546001600160a01b03858116911614801590610fdf57505f546001600160a01b03848116911614155b15611344576001600160a01b0384165f9081526004602052604090205460ff1615801561102457506001600160a01b0383165f9081526004602052604090205460ff16155b61102c575f80fd5b6012545f0361106457611061606461105b600e546012541161105057600a54611054565b600c545b8590611660565b906116e5565b90505b6012541561108957611086606461105b6011548561166090919063ffffffff16565b90505b6014546001600160a01b0385811691161480156110b457506013546001600160a01b03848116911614155b80156110d857506001600160a01b0383165f9081526003602052604090205460ff16155b156111db5760065482111561112f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105b1565b60075482611151856001600160a01b03165f9081526001602052604090205490565b61115b9190611d23565b11156111a95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105b1565b6111c4606461105b600e546012541161105057600a54611054565b601280549192505f6111d583611d36565b91905055505b6014546001600160a01b03848116911614801561120157506001600160a01b0384163014155b1561122e5761122b606461105b600f546012541161122157600b54611054565b600d548590611660565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561126457506014546001600160a01b038581169116145b80156112795750601454600160b01b900460ff165b8015611286575060085481115b80156112955750601054601254115b15611342576015544311156112a9575f6016555b6004601654106112fb5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920342073656c6c732070657220626c6f636b2100000000000000000060448201526064016105b1565b6113186113138461130e84600954611726565b611726565b6114b9565b4780156113285761132847611629565b60168054905f61133783611d36565b909155505043601555505b505b80156113bc57305f90815260016020526040902054611363908261173a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113de9083611798565b6001600160a01b0385165f908152600160205260409020556114216114038383611798565b6001600160a01b0385165f908152600160205260409020549061173a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146a8585611798565b60405190815260200160405180910390a350505050565b5f81848411156114a45760405162461bcd60e51b81526004016105b1919061186a565b505f6114b08486611d4e565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ff576114ff611d61565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611556573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157a9190611cc2565b8160018151811061158d5761158d611d61565b6001600160a01b0392831660209182029290920101526013546115b39130911684610d6a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115eb9085905f90869030904290600401611d75565b5f604051808303815f87803b158015611602575f80fd5b505af1158015611614573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106cb573d5f803e3d5ffd5b5f825f0361166f57505f610582565b5f61167a8385611ba3565b9050826116878583611de6565b146116de5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105b1565b9392505050565b5f6116de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d9565b5f81831161173457826116de565b50919050565b5f806117468385611d23565b9050838110156116de5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b1565b5f6116de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b5f81836117f95760405162461bcd60e51b81526004016105b1919061186a565b505f6114b08486611de6565b5f81518084525f5b818110156118295760208185018101518683018201520161180d565b505f602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201525f6118626040830184611805565b949350505050565b602081525f6116de6020830184611805565b6001600160a01b038116811461079e575f80fd5b5f80604083850312156118a1575f80fd5b82356118ac8161187c565b946020939093013593505050565b5f805f606084860312156118cc575f80fd5b83356118d78161187c565b925060208401356118e78161187c565b929592945050506040919091013590565b5f60208284031215611908575f80fd5b81356116de8161187c565b801515811461079e575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215611946575f80fd5b83356119518161187c565b9250602084013561196181611913565b9150604084013567ffffffffffffffff8082111561197d575f80fd5b818601915086601f830112611990575f80fd5b8135818111156119a2576119a2611920565b604051601f8201601f19908116603f011681019083821181831017156119ca576119ca611920565b816040528281528960208487010111156119e2575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f8060408385031215611a14575f80fd5b8235611a1f8161187c565b91506020830135611a2f8161187c565b809150509250929050565b600181811c90821680611a4e57607f821691505b60208210810361173457634e487b7160e01b5f52602260045260245ffd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611aef57815f1904821115611ad557611ad5611aa1565b80851615611ae257918102915b93841c9390800290611aba565b509250929050565b5f82611b0557506001610582565b81611b1157505f610582565b8160018114611b275760028114611b3157611b4d565b6001915050610582565b60ff841115611b4257611b42611aa1565b50506001821b610582565b5060208310610133831016604e8410600b8410161715611b70575081810a610582565b611b7a8383611ab5565b805f1904821115611b8d57611b8d611aa1565b029392505050565b5f6116de60ff841683611af7565b808202811582820484141761058257610582611aa1565b601f821115611c0157805f5260205f20601f840160051c81016020851015611bdf5750805b601f840160051c820191505b81811015611bfe575f8155600101611beb565b50505b505050565b815167ffffffffffffffff811115611c2057611c20611920565b611c3481611c2e8454611a3a565b84611bba565b602080601f831160018114611c67575f8415611c505750858301515b5f19600386901b1c1916600185901b17855561091b565b5f85815260208120601f198616915b82811015611c9557888601518255948401946001909101908401611c76565b5085821015611cb257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215611cd2575f80fd5b81516116de8161187c565b5f805f60608486031215611cef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d18575f80fd5b81516116de81611913565b8082018082111561058257610582611aa1565b5f60018201611d4757611d47611aa1565b5060010190565b8181038181111561058257610582611aa1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dc55784516001600160a01b031683529383019391830191600101611da0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084174bd10714d14d115cf5e8202c099628a078ac6b042b951529f94c26872ea764736f6c63430008170033
Deployed Bytecode
0x60806040526004361061017e575f3560e01c8063751039fc116100cd578063afb8d61d11610087578063dd62ed3e11610062578063dd62ed3e1461042b578063ef664f7d1461046f578063f8e425851461048e578063fd1a4c2b146104a2575f80fd5b8063afb8d61d146103e3578063bf474bed14610402578063c9567bf914610417575f80fd5b8063751039fc146103345780637d1db4a5146103485780638da5cb5b1461035d5780638f9a55c01461038357806395d89b4114610398578063a9059cbb146103c4575f80fd5b806323b872dd116101385780636760738d116101135780636760738d146102b95780636fc3eaec146102d857806370a08231146102ec578063715018a614610320575f80fd5b806323b872dd1461026b578063313ce5671461028a57806351bc3c85146102a5575f80fd5b8063029c81e31461018957806306fdde03146101b4578063095ea7b3146101ef5780630faee56f1461021e578063109daa991461024157806318160ddd14610257575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104c1565b6040516101ab929190611848565b60405180910390f35b3480156101bf575f80fd5b5060408051808201909152600a8152695371757272656c6a616b60b01b60208201525b6040516101ab919061186a565b3480156101fa575f80fd5b5061020e610209366004611890565b610572565b60405190151581526020016101ab565b348015610229575f80fd5b5061023360095481565b6040519081526020016101ab565b34801561024c575f80fd5b50610255610588565b005b348015610262575f80fd5b506102336105f6565b348015610276575f80fd5b5061020e6102853660046118ba565b610617565b348015610295575f80fd5b50604051600981526020016101ab565b3480156102b0575f80fd5b5061025561067e565b3480156102c4575f80fd5b5061019d6102d33660046118f8565b6106cf565b3480156102e3575f80fd5b50610255610775565b3480156102f7575f80fd5b506102336103063660046118f8565b6001600160a01b03165f9081526001602052604090205490565b34801561032b575f80fd5b506102556107a1565b34801561033f575f80fd5b50610255610812565b348015610353575f80fd5b5061023360065481565b348015610368575f80fd5b505f546040516001600160a01b0390911681526020016101ab565b34801561038e575f80fd5b5061023360075481565b3480156103a3575f80fd5b506040805180820190915260048152634e55545360e01b60208201526101e2565b3480156103cf575f80fd5b5061020e6103de366004611890565b6108c1565b3480156103ee575f80fd5b506102556103fd366004611934565b6108cd565b34801561040d575f80fd5b5061023360085481565b348015610422575f80fd5b50610255610923565b348015610436575f80fd5b50610233610445366004611a03565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561047a575f80fd5b50610255610489366004611934565b610ccd565b348015610499575f80fd5b5061019d610d1b565b3480156104ad575f80fd5b5061019d6104bc3660046118f8565b610d45565b335f90815260186020526040812080546001820180546060939260ff16919081906104eb90611a3a565b80601f016020809104026020016040519081016040528092919081815260200182805461051790611a3a565b80156105625780601f1061053957610100808354040283529160200191610562565b820191905f5260205f20905b81548152906001019060200180831161054557829003601f168201915b5050505050905092509250509091565b5f61057e338484610d6a565b5060015b92915050565b5f546001600160a01b031633146105ba5760405162461bcd60e51b81526004016105b190611a6c565b60405180910390fd5b5f60118190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6106036009600a611b95565b610612906461f313f880611ba3565b905090565b5f610623848484610e8d565b610674843361066f85604051806060016040528060288152602001611e06602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611481565b610d6a565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461069d575f80fd5b305f9081526001602052604090205480156106bb576106bb816114b9565b4780156106cb576106cb81611629565b5050565b60176020525f90815260409020805460018201805460ff90921692916106f490611a3a565b80601f016020809104026020016040519081016040528092919081815260200182805461072090611a3a565b801561076b5780601f106107425761010080835404028352916020019161076b565b820191905f5260205f20905b81548152906001019060200180831161074e57829003601f168201915b5050505050905082565b6005546001600160a01b0316336001600160a01b031614610794575f80fd5b4761079e81611629565b50565b5f546001600160a01b031633146107ca5760405162461bcd60e51b81526004016105b190611a6c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083b5760405162461bcd60e51b81526004016105b190611a6c565b6108476009600a611b95565b610856906461f313f880611ba3565b6006556108656009600a611b95565b610874906461f313f880611ba3565b6007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a46009600a611b95565b6108b3906461f313f880611ba3565b6040519081526020016105ec565b5f61057e338484610e8d565b604080518082018252831515815260208082018481526001600160a01b0387165f90815260179092529290208151815460ff19169015151781559151909190600182019061091b9082611c06565b505050505050565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016105b190611a6c565b601454600160a01b900460ff16156109a65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109f09030906109e16009600a611b95565b61066f906461f313f880611ba3565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a649190611cc2565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae79190611cc2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b559190611cc2565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610b9c816001600160a01b03165f9081526001602052604090205490565b5f80610baf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c15573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3a9190611cdd565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb39190611d08565b506014805462ff00ff60a01b19166201000160a01b179055565b604080518082018252831515815260208082018481526001600160a01b0387165f90815260189092529290208151815460ff19169015151781559151909190600182019061091b9082611c06565b335f90815260176020526040812080546001820180546060939260ff16919081906104eb90611a3a565b60186020525f90815260409020805460018201805460ff90921692916106f490611a3a565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b1565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b1565b6001600160a01b038216610f535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b1565b5f8111610fb45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b1565b5f80546001600160a01b03858116911614801590610fdf57505f546001600160a01b03848116911614155b15611344576001600160a01b0384165f9081526004602052604090205460ff1615801561102457506001600160a01b0383165f9081526004602052604090205460ff16155b61102c575f80fd5b6012545f0361106457611061606461105b600e546012541161105057600a54611054565b600c545b8590611660565b906116e5565b90505b6012541561108957611086606461105b6011548561166090919063ffffffff16565b90505b6014546001600160a01b0385811691161480156110b457506013546001600160a01b03848116911614155b80156110d857506001600160a01b0383165f9081526003602052604090205460ff16155b156111db5760065482111561112f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105b1565b60075482611151856001600160a01b03165f9081526001602052604090205490565b61115b9190611d23565b11156111a95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105b1565b6111c4606461105b600e546012541161105057600a54611054565b601280549192505f6111d583611d36565b91905055505b6014546001600160a01b03848116911614801561120157506001600160a01b0384163014155b1561122e5761122b606461105b600f546012541161122157600b54611054565b600d548590611660565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561126457506014546001600160a01b038581169116145b80156112795750601454600160b01b900460ff165b8015611286575060085481115b80156112955750601054601254115b15611342576015544311156112a9575f6016555b6004601654106112fb5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920342073656c6c732070657220626c6f636b2100000000000000000060448201526064016105b1565b6113186113138461130e84600954611726565b611726565b6114b9565b4780156113285761132847611629565b60168054905f61133783611d36565b909155505043601555505b505b80156113bc57305f90815260016020526040902054611363908261173a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113de9083611798565b6001600160a01b0385165f908152600160205260409020556114216114038383611798565b6001600160a01b0385165f908152600160205260409020549061173a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146a8585611798565b60405190815260200160405180910390a350505050565b5f81848411156114a45760405162461bcd60e51b81526004016105b1919061186a565b505f6114b08486611d4e565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ff576114ff611d61565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611556573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157a9190611cc2565b8160018151811061158d5761158d611d61565b6001600160a01b0392831660209182029290920101526013546115b39130911684610d6a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115eb9085905f90869030904290600401611d75565b5f604051808303815f87803b158015611602575f80fd5b505af1158015611614573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106cb573d5f803e3d5ffd5b5f825f0361166f57505f610582565b5f61167a8385611ba3565b9050826116878583611de6565b146116de5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105b1565b9392505050565b5f6116de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d9565b5f81831161173457826116de565b50919050565b5f806117468385611d23565b9050838110156116de5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b1565b5f6116de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b5f81836117f95760405162461bcd60e51b81526004016105b1919061186a565b505f6114b08486611de6565b5f81518084525f5b818110156118295760208185018101518683018201520161180d565b505f602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201525f6118626040830184611805565b949350505050565b602081525f6116de6020830184611805565b6001600160a01b038116811461079e575f80fd5b5f80604083850312156118a1575f80fd5b82356118ac8161187c565b946020939093013593505050565b5f805f606084860312156118cc575f80fd5b83356118d78161187c565b925060208401356118e78161187c565b929592945050506040919091013590565b5f60208284031215611908575f80fd5b81356116de8161187c565b801515811461079e575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215611946575f80fd5b83356119518161187c565b9250602084013561196181611913565b9150604084013567ffffffffffffffff8082111561197d575f80fd5b818601915086601f830112611990575f80fd5b8135818111156119a2576119a2611920565b604051601f8201601f19908116603f011681019083821181831017156119ca576119ca611920565b816040528281528960208487010111156119e2575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f8060408385031215611a14575f80fd5b8235611a1f8161187c565b91506020830135611a2f8161187c565b809150509250929050565b600181811c90821680611a4e57607f821691505b60208210810361173457634e487b7160e01b5f52602260045260245ffd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611aef57815f1904821115611ad557611ad5611aa1565b80851615611ae257918102915b93841c9390800290611aba565b509250929050565b5f82611b0557506001610582565b81611b1157505f610582565b8160018114611b275760028114611b3157611b4d565b6001915050610582565b60ff841115611b4257611b42611aa1565b50506001821b610582565b5060208310610133831016604e8410600b8410161715611b70575081810a610582565b611b7a8383611ab5565b805f1904821115611b8d57611b8d611aa1565b029392505050565b5f6116de60ff841683611af7565b808202811582820484141761058257610582611aa1565b601f821115611c0157805f5260205f20601f840160051c81016020851015611bdf5750805b601f840160051c820191505b81811015611bfe575f8155600101611beb565b50505b505050565b815167ffffffffffffffff811115611c2057611c20611920565b611c3481611c2e8454611a3a565b84611bba565b602080601f831160018114611c67575f8415611c505750858301515b5f19600386901b1c1916600185901b17855561091b565b5f85815260208120601f198616915b82811015611c9557888601518255948401946001909101908401611c76565b5085821015611cb257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215611cd2575f80fd5b81516116de8161187c565b5f805f60608486031215611cef575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d18575f80fd5b81516116de81611913565b8082018082111561058257610582611aa1565b5f60018201611d4757611d47611aa1565b5060010190565b8181038181111561058257610582611aa1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dc55784516001600160a01b031683529383019391830191600101611da0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084174bd10714d14d115cf5e8202c099628a078ac6b042b951529f94c26872ea764736f6c63430008170033
Deployed Bytecode Sourcemap
3581:9347:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11457:187;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5589:83;;;;;;;;;;-1:-1:-1;5659:5:0;;;;;;;;;;;;-1:-1:-1;;;5659:5:0;;;;5589:83;;;;;;;:::i;6422:161::-;;;;;;;;;;-1:-1:-1;6422:161:0;;;;;:::i;:::-;;:::i;:::-;;;1594:14:1;;1587:22;1569:41;;1557:2;1542:18;6422:161:0;1429:187:1;4352:46:0;;;;;;;;;;;;;;;;;;;1767:25:1;;;1755:2;1740:18;4352:46:0;1621:177:1;10477:119:0;;;;;;;;;;;;;:::i;:::-;;5866:95;;;;;;;;;;;;;:::i;6591:313::-;;;;;;;;;;-1:-1:-1;6591:313:0;;;;;:::i;:::-;;:::i;5680:83::-;;;;;;;;;;-1:-1:-1;5680:83:0;;3986:1;2406:36:1;;2394:2;2379:18;5680:83:0;2264:184:1;12370:354:0;;;;;;;;;;;;;:::i;10792:40::-;;;;;;;;;;-1:-1:-1;10792:40:0;;;;;:::i;:::-;;:::i;12732:193::-;;;;;;;;;;;;;:::i;6144:119::-;;;;;;;;;;-1:-1:-1;6144:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6237:18:0;6210:7;6237:18;;;:9;:18;;;;;;;6144:119;2662:148;;;;;;;;;;;;;:::i;10310:159::-;;;;;;;;;;;;;:::i;4179:48::-;;;;;;;;;;;;;;;;2448:79;;;;;;;;;;-1:-1:-1;2486:7:0;2513:6;2448:79;;-1:-1:-1;;;;;2513:6:0;;;2851:51:1;;2839:2;2824:18;2448:79:0;2705:203:1;4234:50:0;;;;;;;;;;;;;;;;5771:87;;;;;;;;;;-1:-1:-1;5843:7:0;;;;;;;;;;;;-1:-1:-1;;;5843:7:0;;;;5771:87;;5969:167;;;;;;;;;;-1:-1:-1;5969:167:0;;;;;:::i;:::-;;:::i;10841:140::-;;;;;;;;;;-1:-1:-1;10841:140:0;;;;;:::i;:::-;;:::i;4291:54::-;;;;;;;;;;;;;;;;11654:671;;;;;;;;;;;;;:::i;6271:143::-;;;;;;;;;;-1:-1:-1;6271:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6379:18:0;;;6352:7;6379:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6271:143;11312:137;;;;;;;;;;-1:-1:-1;11312:137:0;;;;;:::i;:::-;;:::i;10989:186::-;;;;;;;;;;;;;:::i;11263:40::-;;;;;;;;;;-1:-1:-1;11263:40:0;;;;;:::i;:::-;;:::i;11457:187::-;11568:10;11501:4;11561:18;;;:6;:18;;;;;11598:20;;;11620:15;;11590:46;;11507:13;;11561:18;11598:20;;;11620:15;;;11590:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11457:187;;:::o;6422:161::-;6497:4;6514:39;283:10;6537:7;6546:6;6514:8;:39::i;:::-;-1:-1:-1;6571:4:0;6422:161;;;;;:::o;10477:119::-;2575:6;;-1:-1:-1;;;;;2575:6:0;283:10;2575:22;2567:67;;;;-1:-1:-1;;;2567:67:0;;;;;;;:::i;:::-;;;;;;;;;10550:1:::1;10535:12;:16:::0;;;10567:21:::1;::::0;1767:25:1;;;10567:21:0::1;::::0;1755:2:1;1740:18;10567:21:0::1;;;;;;;;10477:119::o:0;5866:95::-;5919:7;4047:13;3986:1;4047:2;:13;:::i;:::-;4029:31;;:15;:31;:::i;:::-;5939:14;;5866:95;:::o;6591:313::-;6689:4;6706:36;6716:6;6724:9;6735:6;6706:9;:36::i;:::-;6753:121;6762:6;283:10;6784:89;6822:6;6784:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6784:19:0;;;;;;:11;:19;;;;;;;;283:10;6784:33;;;;;;;;;;:37;:89::i;:::-;6753:8;:121::i;:::-;-1:-1:-1;6892:4:0;6591:313;;;;;:::o;12370:354::-;12434:16;;-1:-1:-1;;;;;12434:16:0;283:10;-1:-1:-1;;;;;12420:30:0;;12412:39;;;;;;12501:4;12462:20;6237:18;;;:9;:18;;;;;;12521:14;;12518:73;;12549:30;12566:12;12549:16;:30::i;:::-;12620:21;12655:12;;12652:65;;12681:24;12694:10;12681:12;:24::i;:::-;12401:323;;12370:354::o;10792:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12732:193::-;12796:16;;-1:-1:-1;;;;;12796:16:0;283:10;-1:-1:-1;;;;;12782:30:0;;12774:39;;;;;;12853:21;12885:32;12853:21;12885:12;:32::i;:::-;12763:162;12732:193::o;2662:148::-;2575:6;;-1:-1:-1;;;;;2575:6:0;283:10;2575:22;2567:67;;;;-1:-1:-1;;;2567:67:0;;;;;;;:::i;:::-;2769:1:::1;2753:6:::0;;2732:40:::1;::::0;-1:-1:-1;;;;;2753:6:0;;::::1;::::0;2732:40:::1;::::0;2769:1;;2732:40:::1;2800:1;2783:19:::0;;-1:-1:-1;;;;;;2783:19:0::1;::::0;;2662:148::o;10310:159::-;2575:6;;-1:-1:-1;;;;;2575:6:0;283:10;2575:22;2567:67;;;;-1:-1:-1;;;2567:67:0;;;;;;;:::i;:::-;4047:13:::1;3986:1;4047:2;:13;:::i;:::-;4029:31;::::0;:15:::1;:31;:::i;:::-;10363:12;:22:::0;4047:13:::1;3986:1;4047:2;:13;:::i;:::-;4029:31;::::0;:15:::1;:31;:::i;:::-;10396:14;:22:::0;10434:27:::1;4047:13;3986:1;4047:2;:13;:::i;:::-;4029:31;::::0;:15:::1;:31;:::i;:::-;10434:27;::::0;1767:25:1;;;1755:2;1740:18;10434:27:0::1;1621:177:1::0;5969:167:0;6047:4;6064:42;283:10;6088:9;6099:6;6064:9;:42::i;10841:140::-;10948:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10932:13:0;;-1:-1:-1;10932:13:0;;;:6;:13;;;;;;:41;;;;-1:-1:-1;;10932:41:0;;;;;;;;;10948:25;;10932:13;-1:-1:-1;10932:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10841:140:0:o;11654:671::-;2575:6;;-1:-1:-1;;;;;2575:6:0;283:10;2575:22;2567:67;;;;-1:-1:-1;;;2567:67:0;;;;;;;:::i;:::-;11718:11:::1;::::0;-1:-1:-1;;;11718:11:0;::::1;;;11717:12;11709:47;;;::::0;-1:-1:-1;;;11709:47:0;;9748:2:1;11709:47:0::1;::::0;::::1;9730:21:1::0;9787:2;9767:18;;;9760:30;9826:25;9806:18;;;9799:53;9869:18;;11709:47:0::1;9546:347:1::0;11709:47:0::1;11767:15;:80:::0;;-1:-1:-1;;;;;;11767:80:0::1;11804:42;11767:80:::0;;::::1;::::0;;;11858:58:::1;::::0;11875:4:::1;::::0;4047:13:::1;3986:1;4047:2;:13;:::i;:::-;4029:31;::::0;:15:::1;:31;:::i;11858:58::-;11961:15;;;;;;;;;-1:-1:-1::0;;;;;11961:15:0::1;-1:-1:-1::0;;;;;11961:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11943:55:0::1;;12007:4;12014:15;;;;;;;;;-1:-1:-1::0;;;;;12014:15:0::1;-1:-1:-1::0;;;;;12014:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11943:94;::::0;-1:-1:-1;;;;;;11943:94:0::1;::::0;;;;;;-1:-1:-1;;;;;10384:15:1;;;11943:94:0::1;::::0;::::1;10366:34:1::0;10436:15;;10416:18;;;10409:43;10301:18;;11943:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11927:13;:110:::0;;-1:-1:-1;;;;;11927:110:0;;::::1;-1:-1:-1::0;;;;;;11927:110:0;;::::1;;::::0;;12048:15:::1;::::0;::::1;:31;12087:21;12118:4;12124:24;12118:4:::0;-1:-1:-1;;;;;6237:18:0;6210:7;6237:18;;;:9;:18;;;;;;;6144:119;12124:24:::1;12149:1;12151::::0;12153:7:::1;2486::::0;2513:6;-1:-1:-1;;;;;2513:6:0;;2448:79;12153:7:::1;12048:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12048:129:0;;;-1:-1:-1;;;;;10822:15:1;;;12048:129:0::1;::::0;::::1;10804:34:1::0;10854:18;;;10847:34;;;;10897:18;;;10890:34;;;;10940:18;;;10933:34;11004:15;;;10983:19;;;10976:44;12161:15:0::1;11036:19:1::0;;;11029:35;10738:19;;12048:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12195:13:0::1;::::0;12226:15:::1;::::0;12188:71:::1;::::0;-1:-1:-1;;;12188:71:0;;-1:-1:-1;;;;;12226:15:0;;::::1;12188:71;::::0;::::1;11560:51:1::0;-1:-1:-1;;11627:18:1;;;11620:34;12195:13:0;::::1;::::0;-1:-1:-1;12188:29:0::1;::::0;11533:18:1;;12188:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12270:11:0::1;:18:::0;;-1:-1:-1;;;;12299:18:0;-1:-1:-1;;;12299:18:0;;;11654:671::o;11312:137::-;11416:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11400:13:0;;-1:-1:-1;11400:13:0;;;:6;:13;;;;;;:41;;;;-1:-1:-1;;11400:41:0;;;;;;;;;11416:25;;11400:13;-1:-1:-1;11400:41:0;;;;;;;:::i;10989:186::-;11099:10;11032:4;11092:18;;;:6;:18;;;;;11129:20;;;11151:15;;11121:46;;11038:13;;11092:18;11129:20;;;11151:15;;;11121:46;;;:::i;11263:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6912:335::-;-1:-1:-1;;;;;7005:19:0;;6997:68;;;;-1:-1:-1;;;6997:68:0;;12117:2:1;6997:68:0;;;12099:21:1;12156:2;12136:18;;;12129:30;12195:34;12175:18;;;12168:62;-1:-1:-1;;;12246:18:1;;;12239:34;12290:19;;6997:68:0;11915:400:1;6997:68:0;-1:-1:-1;;;;;7084:21:0;;7076:68;;;;-1:-1:-1;;;7076:68:0;;12522:2:1;7076:68:0;;;12504:21:1;12561:2;12541:18;;;12534:30;12600:34;12580:18;;;12573:62;-1:-1:-1;;;12651:18:1;;;12644:32;12693:19;;7076:68:0;12320:398:1;7076:68:0;-1:-1:-1;;;;;7155:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7207:32;;1767:25:1;;;7207:32:0;;1740:18:1;7207:32:0;;;;;;;6912:335;;;:::o;7255:2448::-;-1:-1:-1;;;;;7343:18:0;;7335:68;;;;-1:-1:-1;;;7335:68:0;;12925:2:1;7335:68:0;;;12907:21:1;12964:2;12944:18;;;12937:30;13003:34;12983:18;;;12976:62;-1:-1:-1;;;13054:18:1;;;13047:35;13099:19;;7335:68:0;12723:401:1;7335:68:0;-1:-1:-1;;;;;7422:16:0;;7414:64;;;;-1:-1:-1;;;7414:64:0;;13331:2:1;7414:64:0;;;13313:21:1;13370:2;13350:18;;;13343:30;13409:34;13389:18;;;13382:62;-1:-1:-1;;;13460:18:1;;;13453:33;13503:19;;7414:64:0;13129:399:1;7414:64:0;7506:1;7497:6;:10;7489:64;;;;-1:-1:-1;;;7489:64:0;;13735:2:1;7489:64:0;;;13717:21:1;13774:2;13754:18;;;13747:30;13813:34;13793:18;;;13786:62;-1:-1:-1;;;13864:18:1;;;13857:39;13913:19;;7489:64:0;13533:405:1;7489:64:0;7564:17;2513:6;;-1:-1:-1;;;;;7598:15:0;;;2513:6;;7598:15;;;;:32;;-1:-1:-1;2486:7:0;2513:6;-1:-1:-1;;;;;7617:13:0;;;2513:6;;7617:13;;7598:32;7594:1753;;;-1:-1:-1;;;;;7656:10:0;;;;;;:4;:10;;;;;;;;7655:11;:24;;;;-1:-1:-1;;;;;;7671:8:0;;;;;;:4;:8;;;;;;;;7670:9;7655:24;7647:33;;;;;;7700:9;;7711:1;7700:12;7697:139;;7744:76;7816:3;7744:67;7766:15;;7756:9;;:25;7755:55;;7796:14;;7755:55;;;7783:12;;7755:55;7744:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7732:88;;7697:139;7853:9;;:11;7850:95;;7896:33;7925:3;7896:24;7907:12;;7896:6;:10;;:24;;;;:::i;:33::-;7884:45;;7850:95;7973:13;;-1:-1:-1;;;;;7965:21:0;;;7973:13;;7965:21;:55;;;;-1:-1:-1;8004:15:0;;-1:-1:-1;;;;;7990:30:0;;;8004:15;;7990:30;;7965:55;:83;;;;-1:-1:-1;;;;;;8026:22:0;;;;;;:18;:22;;;;;;;;8024:24;7965:83;7961:420;;;8088:12;;8078:6;:22;;8070:60;;;;-1:-1:-1;;;8070:60:0;;14145:2:1;8070:60:0;;;14127:21:1;14184:2;14164:18;;;14157:30;14223:27;14203:18;;;14196:55;14268:18;;8070:60:0;13943:349:1;8070:60:0;8183:14;;8173:6;8157:13;8167:2;-1:-1:-1;;;;;6237:18:0;6210:7;6237:18;;;:9;:18;;;;;;;6144:119;8157:13;:22;;;;:::i;:::-;:40;;8149:79;;;;-1:-1:-1;;;8149:79:0;;14629:2:1;8149:79:0;;;14611:21:1;14668:2;14648:18;;;14641:30;14707:28;14687:18;;;14680:56;14753:18;;8149:79:0;14427:350:1;8149:79:0;8259:76;8331:3;8259:67;8281:15;;8271:9;;:25;8270:55;;8311:14;;8270:55;;8259:76;8354:9;:11;;8247:88;;-1:-1:-1;8354:9:0;:11;;;:::i;:::-;;;;;;7961:420;8406:13;;-1:-1:-1;;;;;8400:19:0;;;8406:13;;8400:19;:43;;;;-1:-1:-1;;;;;;8423:20:0;;8438:4;8423:20;;8400:43;8397:174;;;8476:79;8551:3;8476:70;8498:16;;8488:9;;:26;8487:58;;8530:15;;8487:58;;;8516:13;;8476:6;;:10;:70::i;:79::-;8464:91;;8397:174;8636:4;8587:28;6237:18;;;:9;:18;;;;;;8662:6;;-1:-1:-1;;;8662:6:0;;;;8661:7;:30;;;;-1:-1:-1;8678:13:0;;-1:-1:-1;;;;;8672:19:0;;;8678:13;;8672:19;8661:30;:45;;;;-1:-1:-1;8695:11:0;;-1:-1:-1;;;8695:11:0;;;;8661:45;:89;;;;;8733:17;;8710:20;:40;8661:89;:123;;;;;8766:18;;8754:9;;:30;8661:123;8657:679;;;8824:13;;8809:12;:28;8805:90;;;8874:1;8862:9;:13;8805:90;8933:1;8921:9;;:13;8913:49;;;;-1:-1:-1;;;8913:49:0;;15124:2:1;8913:49:0;;;15106:21:1;15163:2;15143:18;;;15136:30;15202:25;15182:18;;;15175:53;15245:18;;8913:49:0;14922:347:1;8913:49:0;8981:69;8998:51;9002:6;9010:38;9014:20;9036:11;;9010:3;:38::i;:::-;8998:3;:51::i;:::-;8981:16;:69::i;:::-;9098:21;9142:22;;9138:106;;9189:35;9202:21;9189:12;:35::i;:::-;9262:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9308:12:0;9292:13;:28;-1:-1:-1;8657:679:0;7632:1715;7594:1753;9362:11;;9359:161;;9430:4;9412:24;;;;:9;:24;;;;;;:39;;9441:9;9412:28;:39::i;:::-;9405:4;9387:24;;;;:9;:24;;;;;;;:64;;;;9469:39;;-1:-1:-1;;;;;9469:39:0;;;;;;;9498:9;1767:25:1;;1755:2;1740:18;;1621:177;9469:39:0;;;;;;;;9359:161;-1:-1:-1;;;;;9546:15:0;;;;;;:9;:15;;;;;;:27;;9566:6;9546:19;:27::i;:::-;-1:-1:-1;;;;;9530:15:0;;;;;;:9;:15;;;;;:43;9598:40;9616:21;:6;9627:9;9616:10;:21::i;:::-;-1:-1:-1;;;;;9598:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9584:13:0;;;;;;;:9;:13;;;;;:54;;;;9654:41;;;9673:21;:6;9684:9;9673:10;:21::i;:::-;9654:41;;1767:25:1;;;1755:2;1740:18;9654:41:0;;;;;;;7324:2379;7255:2448;;;:::o;1340:190::-;1426:7;1462:12;1454:6;;;;1446:29;;;;-1:-1:-1;;;1446:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1486:9:0;1498:5;1502:1;1498;:5;:::i;:::-;1486:17;1340:190;-1:-1:-1;;;;;1340:190:0:o;9819:483::-;5156:6;:13;;-1:-1:-1;;;;5156:13:0;-1:-1:-1;;;5156:13:0;;;9921:16:::1;::::0;;9935:1:::1;9921:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9921:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9921:16:0::1;9897:40;;9966:4;9948;9953:1;9948:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9948:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9992:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9992:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9948:7;;9992:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9982:4;9987:1;9982:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9982:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10057:15:::1;::::0;10025:62:::1;::::0;10042:4:::1;::::0;10057:15:::1;10075:11:::0;10025:8:::1;:62::i;:::-;10098:15;::::0;:196:::1;::::0;-1:-1:-1;;;10098:196:0;;-1:-1:-1;;;;;10098:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10179:11;;10098:15:::1;::::0;10221:4;;10248::::1;::::0;10268:15:::1;::::0;10098:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5192:6:0;:14;;-1:-1:-1;;;;5192:14:0;;;-1:-1:-1;;;;9819:483:0:o;10604:98::-;10661:16;;:33;;-1:-1:-1;;;;;10661:16:0;;;;:33;;;;;10687:6;;10661:16;:33;:16;:33;10687:6;10661:16;:33;;;;;;;;;;;;;;;;;;;1538:246;1596:7;1620:1;1625;1620:6;1616:47;;-1:-1:-1;1650:1:0;1643:8;;1616:47;1673:9;1685:5;1689:1;1685;:5;:::i;:::-;1673:17;-1:-1:-1;1718:1:0;1709:5;1713:1;1673:17;1709:5;:::i;:::-;:10;1701:56;;;;-1:-1:-1;;;1701:56:0;;16948:2:1;1701:56:0;;;16930:21:1;16987:2;16967:18;;;16960:30;17026:34;17006:18;;;16999:62;-1:-1:-1;;;17077:18:1;;;17070:31;17118:19;;1701:56:0;16746:397:1;1701:56:0;1775:1;1538:246;-1:-1:-1;;;1538:246:0:o;1792:132::-;1850:7;1877:39;1881:1;1884;1877:39;;;;;;;;;;;;;;;;;:3;:39::i;9713:98::-;9770:7;9797:1;9795;:3;9794:9;;9802:1;9794:9;;;-1:-1:-1;9800:1:0;9713:98;-1:-1:-1;9713:98:0:o;1009:179::-;1067:7;;1099:5;1103:1;1099;:5;:::i;:::-;1087:17;;1128:1;1123;:6;;1115:46;;;;-1:-1:-1;;;1115:46:0;;17350:2:1;1115:46:0;;;17332:21:1;17389:2;17369:18;;;17362:30;17428:29;17408:18;;;17401:57;17475:18;;1115:46:0;17148:351:1;1196:136:0;1254:7;1281:43;1285:1;1288;1281:43;;;;;;;;;;;;;;;;;:3;:43::i;1932:189::-;2018:7;2053:12;2046:5;2038:28;;;;-1:-1:-1;;;2038:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2077:9:0;2089:5;2093:1;2089;:5;:::i;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:301::-;627:6;620:14;613:22;602:9;595:41;672:2;667;656:9;652:18;645:30;576:4;692:45;733:2;722:9;718:18;710:6;692:45;:::i;:::-;684:53;442:301;-1:-1:-1;;;;442:301:1:o;748:220::-;897:2;886:9;879:21;860:4;917:45;958:2;947:9;943:18;935:6;917:45;:::i;973:131::-;-1:-1:-1;;;;;1048:31:1;;1038:42;;1028:70;;1094:1;1091;1084:12;1109:315;1177:6;1185;1238:2;1226:9;1217:7;1213:23;1209:32;1206:52;;;1254:1;1251;1244:12;1206:52;1293:9;1280:23;1312:31;1337:5;1312:31;:::i;:::-;1362:5;1414:2;1399:18;;;;1386:32;;-1:-1:-1;;;1109:315:1:o;1803:456::-;1880:6;1888;1896;1949:2;1937:9;1928:7;1924:23;1920:32;1917:52;;;1965:1;1962;1955:12;1917:52;2004:9;1991:23;2023:31;2048:5;2023:31;:::i;:::-;2073:5;-1:-1:-1;2130:2:1;2115:18;;2102:32;2143:33;2102:32;2143:33;:::i;:::-;1803:456;;2195:7;;-1:-1:-1;;;2249:2:1;2234:18;;;;2221:32;;1803:456::o;2453:247::-;2512:6;2565:2;2553:9;2544:7;2540:23;2536:32;2533:52;;;2581:1;2578;2571:12;2533:52;2620:9;2607:23;2639:31;2664:5;2639:31;:::i;2913:118::-;2999:5;2992:13;2985:21;2978:5;2975:32;2965:60;;3021:1;3018;3011:12;3036:127;3097:10;3092:3;3088:20;3085:1;3078:31;3128:4;3125:1;3118:15;3152:4;3149:1;3142:15;3168:1192;3252:6;3260;3268;3321:2;3309:9;3300:7;3296:23;3292:32;3289:52;;;3337:1;3334;3327:12;3289:52;3376:9;3363:23;3395:31;3420:5;3395:31;:::i;:::-;3445:5;-1:-1:-1;3502:2:1;3487:18;;3474:32;3515:30;3474:32;3515:30;:::i;:::-;3564:7;-1:-1:-1;3622:2:1;3607:18;;3594:32;3645:18;3675:14;;;3672:34;;;3702:1;3699;3692:12;3672:34;3740:6;3729:9;3725:22;3715:32;;3785:7;3778:4;3774:2;3770:13;3766:27;3756:55;;3807:1;3804;3797:12;3756:55;3843:2;3830:16;3865:2;3861;3858:10;3855:36;;;3871:18;;:::i;:::-;3946:2;3940:9;3914:2;4000:13;;-1:-1:-1;;3996:22:1;;;4020:2;3992:31;3988:40;3976:53;;;4044:18;;;4064:22;;;4041:46;4038:72;;;4090:18;;:::i;:::-;4130:10;4126:2;4119:22;4165:2;4157:6;4150:18;4205:7;4200:2;4195;4191;4187:11;4183:20;4180:33;4177:53;;;4226:1;4223;4216:12;4177:53;4282:2;4277;4273;4269:11;4264:2;4256:6;4252:15;4239:46;4327:1;4322:2;4317;4309:6;4305:15;4301:24;4294:35;4348:6;4338:16;;;;;;;3168:1192;;;;;:::o;4365:388::-;4433:6;4441;4494:2;4482:9;4473:7;4469:23;4465:32;4462:52;;;4510:1;4507;4500:12;4462:52;4549:9;4536:23;4568:31;4593:5;4568:31;:::i;:::-;4618:5;-1:-1:-1;4675:2:1;4660:18;;4647:32;4688:33;4647:32;4688:33;:::i;:::-;4740:7;4730:17;;;4365:388;;;;;:::o;4758:380::-;4837:1;4833:12;;;;4880;;;4901:61;;4955:4;4947:6;4943:17;4933:27;;4901:61;5008:2;5000:6;4997:14;4977:18;4974:38;4971:161;;5054:10;5049:3;5045:20;5042:1;5035:31;5089:4;5086:1;5079:15;5117:4;5114:1;5107:15;5143:356;5345:2;5327:21;;;5364:18;;;5357:30;5423:34;5418:2;5403:18;;5396:62;5490:2;5475:18;;5143:356::o;5694:127::-;5755:10;5750:3;5746:20;5743:1;5736:31;5786:4;5783:1;5776:15;5810:4;5807:1;5800:15;5826:416;5915:1;5952:5;5915:1;5966:270;5987:7;5977:8;5974:21;5966:270;;;6046:4;6042:1;6038:6;6034:17;6028:4;6025:27;6022:53;;;6055:18;;:::i;:::-;6105:7;6095:8;6091:22;6088:55;;;6125:16;;;;6088:55;6204:22;;;;6164:15;;;;5966:270;;;5970:3;5826:416;;;;;:::o;6247:806::-;6296:5;6326:8;6316:80;;-1:-1:-1;6367:1:1;6381:5;;6316:80;6415:4;6405:76;;-1:-1:-1;6452:1:1;6466:5;;6405:76;6497:4;6515:1;6510:59;;;;6583:1;6578:130;;;;6490:218;;6510:59;6540:1;6531:10;;6554:5;;;6578:130;6615:3;6605:8;6602:17;6599:43;;;6622:18;;:::i;:::-;-1:-1:-1;;6678:1:1;6664:16;;6693:5;;6490:218;;6792:2;6782:8;6779:16;6773:3;6767:4;6764:13;6760:36;6754:2;6744:8;6741:16;6736:2;6730:4;6727:12;6723:35;6720:77;6717:159;;;-1:-1:-1;6829:19:1;;;6861:5;;6717:159;6908:34;6933:8;6927:4;6908:34;:::i;:::-;6978:6;6974:1;6970:6;6966:19;6957:7;6954:32;6951:58;;;6989:18;;:::i;:::-;7027:20;;6247:806;-1:-1:-1;;;6247:806:1:o;7058:140::-;7116:5;7145:47;7186:4;7176:8;7172:19;7166:4;7145:47;:::i;7203:168::-;7276:9;;;7307;;7324:15;;;7318:22;;7304:37;7294:71;;7345:18;;:::i;7502:518::-;7604:2;7599:3;7596:11;7593:421;;;7640:5;7637:1;7630:16;7684:4;7681:1;7671:18;7754:2;7742:10;7738:19;7735:1;7731:27;7725:4;7721:38;7790:4;7778:10;7775:20;7772:47;;;-1:-1:-1;7813:4:1;7772:47;7868:2;7863:3;7859:12;7856:1;7852:20;7846:4;7842:31;7832:41;;7923:81;7941:2;7934:5;7931:13;7923:81;;;8000:1;7986:16;;7967:1;7956:13;7923:81;;;7927:3;;7593:421;7502:518;;;:::o;8196:1345::-;8322:3;8316:10;8349:18;8341:6;8338:30;8335:56;;;8371:18;;:::i;:::-;8400:97;8490:6;8450:38;8482:4;8476:11;8450:38;:::i;:::-;8444:4;8400:97;:::i;:::-;8552:4;;8609:2;8598:14;;8626:1;8621:663;;;;9328:1;9345:6;9342:89;;;-1:-1:-1;9397:19:1;;;9391:26;9342:89;-1:-1:-1;;8153:1:1;8149:11;;;8145:24;8141:29;8131:40;8177:1;8173:11;;;8128:57;9444:81;;8591:944;;8621:663;7449:1;7442:14;;;7486:4;7473:18;;-1:-1:-1;;8657:20:1;;;8775:236;8789:7;8786:1;8783:14;8775:236;;;8878:19;;;8872:26;8857:42;;8970:27;;;;8938:1;8926:14;;;;8805:19;;8775:236;;;8779:3;9039:6;9030:7;9027:19;9024:201;;;9100:19;;;9094:26;-1:-1:-1;;9183:1:1;9179:14;;;9195:3;9175:24;9171:37;9167:42;9152:58;9137:74;;9024:201;-1:-1:-1;;;;;9271:1:1;9255:14;;;9251:22;9238:36;;-1:-1:-1;8196:1345:1:o;9898:251::-;9968:6;10021:2;10009:9;10000:7;9996:23;9992:32;9989:52;;;10037:1;10034;10027:12;9989:52;10069:9;10063:16;10088:31;10113:5;10088:31;:::i;11075:306::-;11163:6;11171;11179;11232:2;11220:9;11211:7;11207:23;11203:32;11200:52;;;11248:1;11245;11238:12;11200:52;11277:9;11271:16;11261:26;;11327:2;11316:9;11312:18;11306:25;11296:35;;11371:2;11360:9;11356:18;11350:25;11340:35;;11075:306;;;;;:::o;11665:245::-;11732:6;11785:2;11773:9;11764:7;11760:23;11756:32;11753:52;;;11801:1;11798;11791:12;11753:52;11833:9;11827:16;11852:28;11874:5;11852:28;:::i;14297:125::-;14362:9;;;14383:10;;;14380:36;;;14396:18;;:::i;14782:135::-;14821:3;14842:17;;;14839:43;;14862:18;;:::i;:::-;-1:-1:-1;14909:1:1;14898:13;;14782:135::o;15274:128::-;15341:9;;;15362:11;;;15359:37;;;15376:18;;:::i;15407:127::-;15468:10;15463:3;15459:20;15456:1;15449:31;15499:4;15496:1;15489:15;15523:4;15520:1;15513:15;15539:980;15801:4;15849:3;15838:9;15834:19;15880:6;15869:9;15862:25;15906:2;15944:6;15939:2;15928:9;15924:18;15917:34;15987:3;15982:2;15971:9;15967:18;15960:31;16011:6;16046;16040:13;16077:6;16069;16062:22;16115:3;16104:9;16100:19;16093:26;;16154:2;16146:6;16142:15;16128:29;;16175:1;16185:195;16199:6;16196:1;16193:13;16185:195;;;16264:13;;-1:-1:-1;;;;;16260:39:1;16248:52;;16355:15;;;;16320:12;;;;16296:1;16214:9;16185:195;;;-1:-1:-1;;;;;;;16436:32:1;;;;16431:2;16416:18;;16409:60;-1:-1:-1;;;16500:3:1;16485:19;16478:35;16397:3;15539:980;-1:-1:-1;;;15539:980:1:o;16524:217::-;16564:1;16590;16580:132;;16634:10;16629:3;16625:20;16622:1;16615:31;16669:4;16666:1;16659:15;16697:4;16694:1;16687:15;16580:132;-1:-1:-1;16726:9:1;;16524:217::o
Swarm Source
ipfs://84174bd10714d14d115cf5e8202c099628a078ac6b042b951529f94c26872ea7
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)