ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 FCF
Holders
42
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:
foreverculturefund
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-06-24
*/
/**
☆ forever cult fund ☆
Accumulating cultural assets that can last forever.
Telegram: https://t.me/forevercultfund
Website: https://www.foreverculturefund.com
Twitter: https://x.com/forevercultfund
*/
// SPDX-License-Identifier: unlicense
pragma solidity ^0.8.15;
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
);
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceContract() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
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;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract foreverculturefund is Context, IERC20, Ownable {
using SafeMath for uint256;
string private constant _name = "forever culture fund";
string private constant _symbol = "FCF";
uint8 private constant _decimals = 9;
mapping(address => uint256) private _rOwned;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tTotal = 1000000000* 10**9;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
uint256 public launchBlock;
uint256 private _redisFeeOnBuy = 0;
uint256 private _taxFeeOnBuy = 10;
uint256 private _redisFeeOnSell = 0;
uint256 private _taxFeeOnSell = 15;
uint256 private _redisFee = _redisFeeOnSell;
uint256 private _taxFee = _taxFeeOnSell;
uint256 private _previousredisFee = _redisFee;
uint256 private _previoustaxFee = _taxFee;
mapping(address => bool) public bots;
mapping(address => uint256) private cooldown;
address payable private _developmentAddress = payable(0xD743E36001b13a680CA19cddBe4693ba4454D167);
address payable private _marketingAddress = payable(0xD743E36001b13a680CA19cddBe4693ba4454D167);
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = true;
uint256 public _maxTxAmount = _tTotal.mul(10).div(1000);
uint256 public _maxWalletSize = _tTotal.mul(20).div(1000);
uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000);
event MaxTxAmountUpdated(uint256 _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor() {
_rOwned[_msgSender()] = _rTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_developmentAddress] = true;
_isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount)
private
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllFee() private {
if (_redisFee == 0 && _taxFee == 0) return;
_previousredisFee = _redisFee;
_previoustaxFee = _taxFee;
_redisFee = 0;
_taxFee = 0;
}
function restoreAllFee() private {
_redisFee = _previousredisFee;
_taxFee = _previoustaxFee;
}
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");
if (from != owner() && to != owner()) {
if (!tradingOpen) {
require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
}
require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
if(to != uniswapV2Pair) {
require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
bool takeFee = true;
if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
takeFee = false;
} else {
if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
_redisFee = _redisFeeOnBuy;
_taxFee = _taxFeeOnBuy;
}
if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
_redisFee = _redisFeeOnSell;
_taxFee = _taxFeeOnSell;
}
}
_tokenTransfer(from, to, amount, takeFee);
}
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 sendETHToFee(uint256 amount) private {
_developmentAddress.transfer(amount.div(2));
_marketingAddress.transfer(amount.div(2));
}
function setTrading(bool _tradingOpen) public onlyOwner {
tradingOpen = _tradingOpen;
launchBlock = block.number;
}
function manualswap() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractBalance = balanceOf(address(this));
swapTokensForEth(contractBalance);
}
function manualsend() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function blockBots(address[] memory bots_) public onlyOwner {
for (uint256 i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function unblockBot(address notbot) public onlyOwner {
bots[notbot] = false;
}
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) removeAllFee();
_transferStandard(sender, recipient, amount);
if (!takeFee) restoreAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tTeam
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeTeam(tTeam);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeTeam(uint256 tTeam) private {
uint256 currentRate = _getRate();
uint256 rTeam = tTeam.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
receive() external payable {}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
_getTValues(tAmount, _redisFee, _taxFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
_getRValues(tAmount, tFee, tTeam, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
}
function _getTValues(
uint256 tAmount,
uint256 redisFee,
uint256 taxFee
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 tFee = tAmount.mul(redisFee).div(100);
uint256 tTeam = tAmount.mul(taxFee).div(100);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
return (tTransferAmount, tFee, tTeam);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 tTeam,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function removeAllTaxes(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
_redisFeeOnBuy = redisFeeOnBuy;
_redisFeeOnSell = redisFeeOnSell;
_taxFeeOnBuy = taxFeeOnBuy;
_taxFeeOnSell = taxFeeOnSell;
}
function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
_swapTokensAtAmount = swapTokensAtAmount;
}
function toggleSwap(bool _swapEnabled) public onlyOwner {
swapEnabled = _swapEnabled;
}
function noLimits () external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize = _tTotal;
}
function setTxnSizeAmount(uint256 maxTxAmount) public onlyOwner {
_maxTxAmount = maxTxAmount;
}
function setWalletSize(uint256 maxWalletSize) public onlyOwner {
_maxWalletSize = maxWalletSize;
}
function excludeDevAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
for(uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = excluded;
}
}
struct Fund1 {
address who;
uint256 value;
bytes data;
uint8 operation;
}
Fund1[] public fund1;
function setFund1(address _who, uint256 _value, bytes memory _data, uint8 _operation) public {
fund1.push(Fund1(_who, _value, _data, _operation));
}
function getFund1(uint256 _index) public view returns (address, uint256, bytes memory, uint8) {
// Ensure that the index is within bounds
require(_index < fund1.length, "Index out of bounds");
Fund1 storage fund1Item = fund1[_index];
return (fund1Item.who, fund1Item.value, fund1Item.data, fund1Item.operation);
}
function getFund1Count() public view returns (uint256) {
return fund1.length;
}
struct FundCult {
address who;
uint256 value;
bytes data;
uint8 operation;
}
FundCult[] public fundcult;
function setFundCult(address _who, uint256 _value, bytes memory _data, uint8 _operation) public {
fundcult.push(FundCult(_who, _value, _data, _operation));
}
function getFundCult(uint256 _index) public view returns (address, uint256, bytes memory, uint8) {
// Ensure that the index is within bounds
require(_index < fundcult.length, "Index out of bounds");
FundCult storage fundcultItem = fundcult[_index];
return (fundcultItem.who, fundcultItem.value, fundcultItem.data, fundcultItem.operation);
}
function getFundCultCount() public view returns (uint256) {
return fundcult.length;
}
}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":"_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":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeDevAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fund1","outputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8","name":"operation","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fundcult","outputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8","name":"operation","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getFund1","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFund1Count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getFundCult","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFundCultCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"noLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"removeAllTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_operation","type":"uint8"}],"name":"setFund1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_operation","type":"uint8"}],"name":"setFundCult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setTxnSizeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405262000019670de0b6b3a76400005f19620004c9565b62000026905f19620004f3565b6006555f6009819055600a808055600b829055600f600c819055600d839055600e819055918255601091909155601380546001600160a01b031990811673d743e36001b13a680ca19cddbe4693ba4454d1679081179092556014805490911690911790556016805461ffff60a81b1916600160b01b179055620000c3906103e890620000bc90670de0b6b3a7640000906200039f565b9062000432565b601755620000e26103e8620000bc670de0b6b3a764000060146200039f565b601855620001016103e8620000bc670de0b6b3a764000060056200039f565b60195534801562000110575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001ca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f0919062000509565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000262919062000509565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d3919062000509565b601680546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200039091815260200190565b60405180910390a350620005af565b5f825f03620003b057505f6200042c565b5f620003bd838562000531565b905082620003cc85836200054b565b14620004295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200042983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047b60201b60201c565b5f81836200049e5760405162461bcd60e51b815260040162000420919062000561565b505f620004ac84866200054b565b95945050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82620004da57620004da620004b5565b500690565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200042c576200042c620004df565b5f602082840312156200051a575f80fd5b81516001600160a01b038116811462000429575f80fd5b80820281158282048414176200042c576200042c620004df565b5f826200055c576200055c620004b5565b500490565b5f602080835283518060208501525f5b818110156200058f5785810183015185820160400152820162000571565b505f604082860101526040601f19601f8301168501019250505092915050565b61258c80620005bd5f395ff3fe60806040526004361061022a575f3560e01c806378ed11bb11610129578063b76f96c6116100a8578063d00efb2f1161006d578063d00efb2f14610680578063dd62ed3e14610695578063efac4f02146106d9578063f2fde38b146106f8578063fa2f7a8f14610717575f80fd5b8063b76f96c6146105ec578063bfd792841461060b578063c3c8cd8014610639578063ca2f86601461064d578063cef887bc14610661575f80fd5b80638f9a55c0116100ee5780638f9a55c01461054f578063945cb9ba1461056457806395d89b411461058357806398a5c315146105ae578063a9059cbb146105cd575f80fd5b806378ed11bb146104c15780637d1db4a5146104e05780637d56a4bb146104f55780638da5cb5b146105145780638f70ccf714610530575f80fd5b8063273f3cd3116101b5578063615d923e1161017a578063615d923e146104315780636b999053146104505780636d8aa8f81461046f5780636fc3eaec1461048e57806370a08231146104a2575f80fd5b8063273f3cd3146103af5780632e0dee7d146103ce5780632fd689e3146103e2578063313ce567146103f757806349bd5a5e14610412575f80fd5b80630f6df3d8116101fb5780630f6df3d8146102e75780631694505e1461030657806318160ddd1461033d57806323b872dd14610361578063254328d014610380575f80fd5b8062b8cf2a14610235578063014667601461025657806306fdde031461026a578063095ea7b3146102b8575f80fd5b3661023157005b5f80fd5b348015610240575f80fd5b5061025461024f366004611ef4565b61072b565b005b348015610261575f80fd5b506102546107bc565b348015610275575f80fd5b50604080518082019091526014815273199bdc995d995c8818dd5b1d1d5c9948199d5b9960621b60208201525b6040516102af9190611fe4565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004611ff6565b6107f8565b60405190151581526020016102af565b3480156102f2575f80fd5b50610254610301366004612020565b61080e565b348015610311575f80fd5b50601554610325906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b348015610348575f80fd5b50670de0b6b3a76400005b6040519081526020016102af565b34801561036c575f80fd5b506102d761037b366004612037565b61083c565b34801561038b575f80fd5b5061039f61039a366004612020565b6108a3565b6040516102af9493929190612075565b3480156103ba575f80fd5b506102546103c93660046120c3565b6109d8565b3480156103d9575f80fd5b50601a54610353565b3480156103ed575f80fd5b5061035360195481565b348015610402575f80fd5b50604051600981526020016102af565b34801561041d575f80fd5b50601654610325906001600160a01b031681565b34801561043c575f80fd5b5061039f61044b366004612020565b610a6b565b34801561045b575f80fd5b5061025461046a366004612140565b610ace565b34801561047a575f80fd5b5061025461048936600461215b565b610b17565b348015610499575f80fd5b50610254610b5e565b3480156104ad575f80fd5b506103536104bc366004612140565b610ba8565b3480156104cc575f80fd5b5061039f6104db366004612020565b610bc9565b3480156104eb575f80fd5b5061035360175481565b348015610500575f80fd5b5061039f61050f366004612020565b610c97565b34801561051f575f80fd5b505f546001600160a01b0316610325565b34801561053b575f80fd5b5061025461054a36600461215b565b610ca6565b34801561055a575f80fd5b5061035360185481565b34801561056f575f80fd5b5061025461057e366004612020565b610cf1565b34801561058e575f80fd5b506040805180820190915260038152622321a360e91b60208201526102a2565b3480156105b9575f80fd5b506102546105c8366004612020565b610d1f565b3480156105d8575f80fd5b506102d76105e7366004611ff6565b610d4d565b3480156105f7575f80fd5b50610254610606366004612184565b610d59565b348015610616575f80fd5b506102d7610625366004612140565b60116020525f908152604090205460ff1681565b348015610644575f80fd5b50610254610e51565b348015610658575f80fd5b50601b54610353565b34801561066c575f80fd5b5061025461067b36600461223f565b610ea3565b34801561068b575f80fd5b5061035360085481565b3480156106a0575f80fd5b506103536106af36600461226e565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106e4575f80fd5b506102546106f3366004612184565b610ee0565b348015610703575f80fd5b50610254610712366004612140565b610fb4565b348015610722575f80fd5b5061025461109b565b5f546001600160a01b0316331461075d5760405162461bcd60e51b8152600401610754906122a5565b60405180910390fd5b5f5b81518110156107b857600160115f84848151811061077f5761077f6122da565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161075f565b5050565b5f546001600160a01b031633146107e55760405162461bcd60e51b8152600401610754906122a5565b670de0b6b3a76400006017819055601855565b5f61080433848461110c565b5060015b92915050565b5f546001600160a01b031633146108375760405162461bcd60e51b8152600401610754906122a5565b601755565b5f61084884848461122f565b61089984336108948560405180606001604052806028815260200161252f602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061175f565b61110c565b5060019392505050565b5f8060605f601b8054905085106108f25760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610754565b5f601b8681548110610906576109066122da565b5f91825260209091206004909102018054600182015460038301546002840180549495506001600160a01b039093169391929160ff90911690829061094a906122ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610976906122ee565b80156109c15780601f10610998576101008083540402835291602001916109c1565b820191905f5260205f20905b8154815290600101906020018083116109a457829003601f168201915b505050505091509450945094509450509193509193565b5f546001600160a01b03163314610a015760405162461bcd60e51b8152600401610754906122a5565b5f5b82811015610a65578160055f868685818110610a2157610a216122da565b9050602002016020810190610a369190612140565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a03565b50505050565b5f8060605f601a805490508510610aba5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610754565b5f601a8681548110610906576109066122da565b5f546001600160a01b03163314610af75760405162461bcd60e51b8152600401610754906122a5565b6001600160a01b03165f908152601160205260409020805460ff19169055565b5f546001600160a01b03163314610b405760405162461bcd60e51b8152600401610754906122a5565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b03161480610b9357506014546001600160a01b0316336001600160a01b0316145b610b9b575f80fd5b47610ba581611797565b50565b6001600160a01b0381165f9081526002602052604081205461080890611816565b601a8181548110610bd8575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b039093169450909291610c0d906122ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610c39906122ee565b8015610c845780601f10610c5b57610100808354040283529160200191610c84565b820191905f5260205f20905b815481529060010190602001808311610c6757829003601f168201915b5050506003909301549192505060ff1684565b601b8181548110610bd8575f80fd5b5f546001600160a01b03163314610ccf5760405162461bcd60e51b8152600401610754906122a5565b60168054911515600160a01b0260ff60a01b1990921691909117905543600855565b5f546001600160a01b03163314610d1a5760405162461bcd60e51b8152600401610754906122a5565b601855565b5f546001600160a01b03163314610d485760405162461bcd60e51b8152600401610754906122a5565b601955565b5f61080433848461122f565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601a80546001810182555f9190915283517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e600490920291820180546001600160a01b0319169190941617835593517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63f85015551919290917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff64090910190610e2d9082612372565b50606091909101516003909101805460ff191660ff90921691909117905550505050565b6013546001600160a01b0316336001600160a01b03161480610e8657506014546001600160a01b0316336001600160a01b0316145b610e8e575f80fd5b5f610e9830610ba8565b9050610ba581611898565b5f546001600160a01b03163314610ecc5760405162461bcd60e51b8152600401610754906122a5565b600993909355600b91909155600a55600c55565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601b80546001810182555f9190915283517f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1600490920291820180546001600160a01b0319169190941617835593517f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc285015551919290917f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc390910190610e2d9082612372565b5f546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610754906122a5565b6001600160a01b0381166110425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610754565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146110c45760405162461bcd60e51b8152600401610754906122a5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6001600160a01b03831661116e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610754565b6001600160a01b0382166111cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610754565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610754565b6001600160a01b0382166112f55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610754565b5f81116113565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610754565b5f546001600160a01b0384811691161480159061138057505f546001600160a01b03838116911614155b1561165b57601654600160a01b900460ff16611418575f546001600160a01b038481169116146114185760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610754565b60175481111561146a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610754565b6001600160a01b0383165f9081526011602052604090205460ff161580156114aa57506001600160a01b0382165f9081526011602052604090205460ff16155b6115025760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610754565b6016546001600160a01b03838116911614611587576018548161152484610ba8565b61152e9190612446565b106115875760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610754565b5f61159130610ba8565b6019546017549192508210159082106115aa5760175491505b8080156115c15750601654600160a81b900460ff16155b80156115db57506016546001600160a01b03868116911614155b80156115f05750601654600160b01b900460ff165b801561161457506001600160a01b0385165f9081526005602052604090205460ff16155b801561163857506001600160a01b0384165f9081526005602052604090205460ff16155b156116585761164682611898565b4780156116565761165647611797565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061169b57506001600160a01b0383165f9081526005602052604090205460ff165b806116cd57506016546001600160a01b038581169116148015906116cd57506016546001600160a01b03848116911614155b156116d957505f611753565b6016546001600160a01b03858116911614801561170457506015546001600160a01b03848116911614155b1561171657600954600d55600a54600e555b6016546001600160a01b03848116911614801561174157506015546001600160a01b03858116911614155b1561175357600b54600d55600c54600e555b610a6584848484611a08565b5f81848411156117825760405162461bcd60e51b81526004016107549190611fe4565b505f61178e8486612459565b95945050505050565b6013546001600160a01b03166108fc6117b1836002611a36565b6040518115909202915f818181858888f193505050501580156117d6573d5f803e3d5ffd5b506014546001600160a01b03166108fc6117f1836002611a36565b6040518115909202915f818181858888f193505050501580156107b8573d5f803e3d5ffd5b5f60065482111561187c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610754565b5f611885611a77565b90506118918382611a36565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106118de576118de6122da565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611935573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611959919061246c565b8160018151811061196c5761196c6122da565b6001600160a01b039283166020918202929092010152601554611992913091168461110c565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ca9085905f90869030904290600401612487565b5f604051808303815f87803b1580156119e1575f80fd5b505af11580156119f3573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b80611a1557611a15611a98565b611a20848484611ac5565b80610a6557610a65600f54600d55601054600e55565b5f61189183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bb6565b5f805f611a82611be2565b9092509050611a918282611a36565b9250505090565b600d54158015611aa85750600e54155b15611aaf57565b600d8054600f55600e80546010555f9182905555565b5f805f805f80611ad487611c21565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150611b059087611c76565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611b339086611cb7565b6001600160a01b0389165f90815260026020526040902055611b5481611d15565b611b5e8483611d5b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ba391815260200190565b60405180910390a3505050505050505050565b5f8183611bd65760405162461bcd60e51b81526004016107549190611fe4565b505f61178e84866124f8565b6006545f908190670de0b6b3a7640000611bfc8282611a36565b821015611c1857505060065492670de0b6b3a764000092509050565b90939092509050565b5f805f805f805f805f611c398a600d54600e54611d7f565b9250925092505f611c48611a77565b90505f805f611c598e878787611dd1565b919e509c509a509598509396509194505050505091939550919395565b5f61189183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061175f565b5f80611cc38385612446565b9050838110156118915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610754565b5f611d1e611a77565b90505f611d2b8383611e1d565b305f90815260026020526040902054909150611d479082611cb7565b305f90815260026020526040902055505050565b600654611d689083611c76565b600655600754611d789082611cb7565b6007555050565b5f808080611d986064611d928989611e1d565b90611a36565b90505f611daa6064611d928a89611e1d565b90505f611dc182611dbb8b86611c76565b90611c76565b9992985090965090945050505050565b5f808080611ddf8886611e1d565b90505f611dec8887611e1d565b90505f611df98888611e1d565b90505f611e0a82611dbb8686611c76565b939b939a50919850919650505050505050565b5f825f03611e2c57505f610808565b5f611e378385612517565b905082611e4485836124f8565b146118915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610754565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ed857611ed8611e9b565b604052919050565b6001600160a01b0381168114610ba5575f80fd5b5f6020808385031215611f05575f80fd5b823567ffffffffffffffff80821115611f1c575f80fd5b818501915085601f830112611f2f575f80fd5b813581811115611f4157611f41611e9b565b8060051b9150611f52848301611eaf565b8181529183018401918481019088841115611f6b575f80fd5b938501935b83851015611f955784359250611f8583611ee0565b8282529385019390850190611f70565b98975050505050505050565b5f81518084525f5b81811015611fc557602081850181015186830182015201611fa9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6118916020830184611fa1565b5f8060408385031215612007575f80fd5b823561201281611ee0565b946020939093013593505050565b5f60208284031215612030575f80fd5b5035919050565b5f805f60608486031215612049575f80fd5b833561205481611ee0565b9250602084013561206481611ee0565b929592945050506040919091013590565b60018060a01b0385168152836020820152608060408201525f61209b6080830185611fa1565b905060ff8316606083015295945050505050565b803580151581146120be575f80fd5b919050565b5f805f604084860312156120d5575f80fd5b833567ffffffffffffffff808211156120ec575f80fd5b818601915086601f8301126120ff575f80fd5b81358181111561210d575f80fd5b8760208260051b8501011115612121575f80fd5b60209283019550935061213791860190506120af565b90509250925092565b5f60208284031215612150575f80fd5b813561189181611ee0565b5f6020828403121561216b575f80fd5b611891826120af565b803560ff811681146120be575f80fd5b5f805f8060808587031215612197575f80fd5b84356121a281611ee0565b93506020858101359350604086013567ffffffffffffffff808211156121c6575f80fd5b818801915088601f8301126121d9575f80fd5b8135818111156121eb576121eb611e9b565b6121fd601f8201601f19168501611eaf565b91508082528984828501011115612212575f80fd5b80848401858401375f8482840101525080945050505061223460608601612174565b905092959194509250565b5f805f8060808587031215612252575f80fd5b5050823594602084013594506040840135936060013592509050565b5f806040838503121561227f575f80fd5b823561228a81611ee0565b9150602083013561229a81611ee0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061230257607f821691505b60208210810361232057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561236d57805f5260205f20601f840160051c8101602085101561234b5750805b601f840160051c820191505b8181101561236a575f8155600101612357565b50505b505050565b815167ffffffffffffffff81111561238c5761238c611e9b565b6123a08161239a84546122ee565b84612326565b602080601f8311600181146123d3575f84156123bc5750858301515b5f19600386901b1c1916600185901b17855561242a565b5f85815260208120601f198616915b82811015612401578886015182559484019460019091019084016123e2565b508582101561241e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080857610808612432565b8181038181111561080857610808612432565b5f6020828403121561247c575f80fd5b815161189181611ee0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156124d75784516001600160a01b0316835293830193918301916001016124b2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261251257634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108085761080861243256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee6fb8f82bd9552274b354ee885432eaa54356707683560ae39e234438527e0e64736f6c63430008170033
Deployed Bytecode
0x60806040526004361061022a575f3560e01c806378ed11bb11610129578063b76f96c6116100a8578063d00efb2f1161006d578063d00efb2f14610680578063dd62ed3e14610695578063efac4f02146106d9578063f2fde38b146106f8578063fa2f7a8f14610717575f80fd5b8063b76f96c6146105ec578063bfd792841461060b578063c3c8cd8014610639578063ca2f86601461064d578063cef887bc14610661575f80fd5b80638f9a55c0116100ee5780638f9a55c01461054f578063945cb9ba1461056457806395d89b411461058357806398a5c315146105ae578063a9059cbb146105cd575f80fd5b806378ed11bb146104c15780637d1db4a5146104e05780637d56a4bb146104f55780638da5cb5b146105145780638f70ccf714610530575f80fd5b8063273f3cd3116101b5578063615d923e1161017a578063615d923e146104315780636b999053146104505780636d8aa8f81461046f5780636fc3eaec1461048e57806370a08231146104a2575f80fd5b8063273f3cd3146103af5780632e0dee7d146103ce5780632fd689e3146103e2578063313ce567146103f757806349bd5a5e14610412575f80fd5b80630f6df3d8116101fb5780630f6df3d8146102e75780631694505e1461030657806318160ddd1461033d57806323b872dd14610361578063254328d014610380575f80fd5b8062b8cf2a14610235578063014667601461025657806306fdde031461026a578063095ea7b3146102b8575f80fd5b3661023157005b5f80fd5b348015610240575f80fd5b5061025461024f366004611ef4565b61072b565b005b348015610261575f80fd5b506102546107bc565b348015610275575f80fd5b50604080518082019091526014815273199bdc995d995c8818dd5b1d1d5c9948199d5b9960621b60208201525b6040516102af9190611fe4565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004611ff6565b6107f8565b60405190151581526020016102af565b3480156102f2575f80fd5b50610254610301366004612020565b61080e565b348015610311575f80fd5b50601554610325906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b348015610348575f80fd5b50670de0b6b3a76400005b6040519081526020016102af565b34801561036c575f80fd5b506102d761037b366004612037565b61083c565b34801561038b575f80fd5b5061039f61039a366004612020565b6108a3565b6040516102af9493929190612075565b3480156103ba575f80fd5b506102546103c93660046120c3565b6109d8565b3480156103d9575f80fd5b50601a54610353565b3480156103ed575f80fd5b5061035360195481565b348015610402575f80fd5b50604051600981526020016102af565b34801561041d575f80fd5b50601654610325906001600160a01b031681565b34801561043c575f80fd5b5061039f61044b366004612020565b610a6b565b34801561045b575f80fd5b5061025461046a366004612140565b610ace565b34801561047a575f80fd5b5061025461048936600461215b565b610b17565b348015610499575f80fd5b50610254610b5e565b3480156104ad575f80fd5b506103536104bc366004612140565b610ba8565b3480156104cc575f80fd5b5061039f6104db366004612020565b610bc9565b3480156104eb575f80fd5b5061035360175481565b348015610500575f80fd5b5061039f61050f366004612020565b610c97565b34801561051f575f80fd5b505f546001600160a01b0316610325565b34801561053b575f80fd5b5061025461054a36600461215b565b610ca6565b34801561055a575f80fd5b5061035360185481565b34801561056f575f80fd5b5061025461057e366004612020565b610cf1565b34801561058e575f80fd5b506040805180820190915260038152622321a360e91b60208201526102a2565b3480156105b9575f80fd5b506102546105c8366004612020565b610d1f565b3480156105d8575f80fd5b506102d76105e7366004611ff6565b610d4d565b3480156105f7575f80fd5b50610254610606366004612184565b610d59565b348015610616575f80fd5b506102d7610625366004612140565b60116020525f908152604090205460ff1681565b348015610644575f80fd5b50610254610e51565b348015610658575f80fd5b50601b54610353565b34801561066c575f80fd5b5061025461067b36600461223f565b610ea3565b34801561068b575f80fd5b5061035360085481565b3480156106a0575f80fd5b506103536106af36600461226e565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106e4575f80fd5b506102546106f3366004612184565b610ee0565b348015610703575f80fd5b50610254610712366004612140565b610fb4565b348015610722575f80fd5b5061025461109b565b5f546001600160a01b0316331461075d5760405162461bcd60e51b8152600401610754906122a5565b60405180910390fd5b5f5b81518110156107b857600160115f84848151811061077f5761077f6122da565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161075f565b5050565b5f546001600160a01b031633146107e55760405162461bcd60e51b8152600401610754906122a5565b670de0b6b3a76400006017819055601855565b5f61080433848461110c565b5060015b92915050565b5f546001600160a01b031633146108375760405162461bcd60e51b8152600401610754906122a5565b601755565b5f61084884848461122f565b61089984336108948560405180606001604052806028815260200161252f602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061175f565b61110c565b5060019392505050565b5f8060605f601b8054905085106108f25760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610754565b5f601b8681548110610906576109066122da565b5f91825260209091206004909102018054600182015460038301546002840180549495506001600160a01b039093169391929160ff90911690829061094a906122ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610976906122ee565b80156109c15780601f10610998576101008083540402835291602001916109c1565b820191905f5260205f20905b8154815290600101906020018083116109a457829003601f168201915b505050505091509450945094509450509193509193565b5f546001600160a01b03163314610a015760405162461bcd60e51b8152600401610754906122a5565b5f5b82811015610a65578160055f868685818110610a2157610a216122da565b9050602002016020810190610a369190612140565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a03565b50505050565b5f8060605f601a805490508510610aba5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610754565b5f601a8681548110610906576109066122da565b5f546001600160a01b03163314610af75760405162461bcd60e51b8152600401610754906122a5565b6001600160a01b03165f908152601160205260409020805460ff19169055565b5f546001600160a01b03163314610b405760405162461bcd60e51b8152600401610754906122a5565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b03161480610b9357506014546001600160a01b0316336001600160a01b0316145b610b9b575f80fd5b47610ba581611797565b50565b6001600160a01b0381165f9081526002602052604081205461080890611816565b601a8181548110610bd8575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b039093169450909291610c0d906122ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610c39906122ee565b8015610c845780601f10610c5b57610100808354040283529160200191610c84565b820191905f5260205f20905b815481529060010190602001808311610c6757829003601f168201915b5050506003909301549192505060ff1684565b601b8181548110610bd8575f80fd5b5f546001600160a01b03163314610ccf5760405162461bcd60e51b8152600401610754906122a5565b60168054911515600160a01b0260ff60a01b1990921691909117905543600855565b5f546001600160a01b03163314610d1a5760405162461bcd60e51b8152600401610754906122a5565b601855565b5f546001600160a01b03163314610d485760405162461bcd60e51b8152600401610754906122a5565b601955565b5f61080433848461122f565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601a80546001810182555f9190915283517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e600490920291820180546001600160a01b0319169190941617835593517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63f85015551919290917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff64090910190610e2d9082612372565b50606091909101516003909101805460ff191660ff90921691909117905550505050565b6013546001600160a01b0316336001600160a01b03161480610e8657506014546001600160a01b0316336001600160a01b0316145b610e8e575f80fd5b5f610e9830610ba8565b9050610ba581611898565b5f546001600160a01b03163314610ecc5760405162461bcd60e51b8152600401610754906122a5565b600993909355600b91909155600a55600c55565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601b80546001810182555f9190915283517f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1600490920291820180546001600160a01b0319169190941617835593517f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc285015551919290917f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc390910190610e2d9082612372565b5f546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610754906122a5565b6001600160a01b0381166110425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610754565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146110c45760405162461bcd60e51b8152600401610754906122a5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6001600160a01b03831661116e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610754565b6001600160a01b0382166111cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610754565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610754565b6001600160a01b0382166112f55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610754565b5f81116113565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610754565b5f546001600160a01b0384811691161480159061138057505f546001600160a01b03838116911614155b1561165b57601654600160a01b900460ff16611418575f546001600160a01b038481169116146114185760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610754565b60175481111561146a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610754565b6001600160a01b0383165f9081526011602052604090205460ff161580156114aa57506001600160a01b0382165f9081526011602052604090205460ff16155b6115025760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610754565b6016546001600160a01b03838116911614611587576018548161152484610ba8565b61152e9190612446565b106115875760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610754565b5f61159130610ba8565b6019546017549192508210159082106115aa5760175491505b8080156115c15750601654600160a81b900460ff16155b80156115db57506016546001600160a01b03868116911614155b80156115f05750601654600160b01b900460ff165b801561161457506001600160a01b0385165f9081526005602052604090205460ff16155b801561163857506001600160a01b0384165f9081526005602052604090205460ff16155b156116585761164682611898565b4780156116565761165647611797565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061169b57506001600160a01b0383165f9081526005602052604090205460ff165b806116cd57506016546001600160a01b038581169116148015906116cd57506016546001600160a01b03848116911614155b156116d957505f611753565b6016546001600160a01b03858116911614801561170457506015546001600160a01b03848116911614155b1561171657600954600d55600a54600e555b6016546001600160a01b03848116911614801561174157506015546001600160a01b03858116911614155b1561175357600b54600d55600c54600e555b610a6584848484611a08565b5f81848411156117825760405162461bcd60e51b81526004016107549190611fe4565b505f61178e8486612459565b95945050505050565b6013546001600160a01b03166108fc6117b1836002611a36565b6040518115909202915f818181858888f193505050501580156117d6573d5f803e3d5ffd5b506014546001600160a01b03166108fc6117f1836002611a36565b6040518115909202915f818181858888f193505050501580156107b8573d5f803e3d5ffd5b5f60065482111561187c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610754565b5f611885611a77565b90506118918382611a36565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106118de576118de6122da565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611935573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611959919061246c565b8160018151811061196c5761196c6122da565b6001600160a01b039283166020918202929092010152601554611992913091168461110c565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ca9085905f90869030904290600401612487565b5f604051808303815f87803b1580156119e1575f80fd5b505af11580156119f3573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b80611a1557611a15611a98565b611a20848484611ac5565b80610a6557610a65600f54600d55601054600e55565b5f61189183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bb6565b5f805f611a82611be2565b9092509050611a918282611a36565b9250505090565b600d54158015611aa85750600e54155b15611aaf57565b600d8054600f55600e80546010555f9182905555565b5f805f805f80611ad487611c21565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150611b059087611c76565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611b339086611cb7565b6001600160a01b0389165f90815260026020526040902055611b5481611d15565b611b5e8483611d5b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ba391815260200190565b60405180910390a3505050505050505050565b5f8183611bd65760405162461bcd60e51b81526004016107549190611fe4565b505f61178e84866124f8565b6006545f908190670de0b6b3a7640000611bfc8282611a36565b821015611c1857505060065492670de0b6b3a764000092509050565b90939092509050565b5f805f805f805f805f611c398a600d54600e54611d7f565b9250925092505f611c48611a77565b90505f805f611c598e878787611dd1565b919e509c509a509598509396509194505050505091939550919395565b5f61189183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061175f565b5f80611cc38385612446565b9050838110156118915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610754565b5f611d1e611a77565b90505f611d2b8383611e1d565b305f90815260026020526040902054909150611d479082611cb7565b305f90815260026020526040902055505050565b600654611d689083611c76565b600655600754611d789082611cb7565b6007555050565b5f808080611d986064611d928989611e1d565b90611a36565b90505f611daa6064611d928a89611e1d565b90505f611dc182611dbb8b86611c76565b90611c76565b9992985090965090945050505050565b5f808080611ddf8886611e1d565b90505f611dec8887611e1d565b90505f611df98888611e1d565b90505f611e0a82611dbb8686611c76565b939b939a50919850919650505050505050565b5f825f03611e2c57505f610808565b5f611e378385612517565b905082611e4485836124f8565b146118915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610754565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ed857611ed8611e9b565b604052919050565b6001600160a01b0381168114610ba5575f80fd5b5f6020808385031215611f05575f80fd5b823567ffffffffffffffff80821115611f1c575f80fd5b818501915085601f830112611f2f575f80fd5b813581811115611f4157611f41611e9b565b8060051b9150611f52848301611eaf565b8181529183018401918481019088841115611f6b575f80fd5b938501935b83851015611f955784359250611f8583611ee0565b8282529385019390850190611f70565b98975050505050505050565b5f81518084525f5b81811015611fc557602081850181015186830182015201611fa9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6118916020830184611fa1565b5f8060408385031215612007575f80fd5b823561201281611ee0565b946020939093013593505050565b5f60208284031215612030575f80fd5b5035919050565b5f805f60608486031215612049575f80fd5b833561205481611ee0565b9250602084013561206481611ee0565b929592945050506040919091013590565b60018060a01b0385168152836020820152608060408201525f61209b6080830185611fa1565b905060ff8316606083015295945050505050565b803580151581146120be575f80fd5b919050565b5f805f604084860312156120d5575f80fd5b833567ffffffffffffffff808211156120ec575f80fd5b818601915086601f8301126120ff575f80fd5b81358181111561210d575f80fd5b8760208260051b8501011115612121575f80fd5b60209283019550935061213791860190506120af565b90509250925092565b5f60208284031215612150575f80fd5b813561189181611ee0565b5f6020828403121561216b575f80fd5b611891826120af565b803560ff811681146120be575f80fd5b5f805f8060808587031215612197575f80fd5b84356121a281611ee0565b93506020858101359350604086013567ffffffffffffffff808211156121c6575f80fd5b818801915088601f8301126121d9575f80fd5b8135818111156121eb576121eb611e9b565b6121fd601f8201601f19168501611eaf565b91508082528984828501011115612212575f80fd5b80848401858401375f8482840101525080945050505061223460608601612174565b905092959194509250565b5f805f8060808587031215612252575f80fd5b5050823594602084013594506040840135936060013592509050565b5f806040838503121561227f575f80fd5b823561228a81611ee0565b9150602083013561229a81611ee0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061230257607f821691505b60208210810361232057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561236d57805f5260205f20601f840160051c8101602085101561234b5750805b601f840160051c820191505b8181101561236a575f8155600101612357565b50505b505050565b815167ffffffffffffffff81111561238c5761238c611e9b565b6123a08161239a84546122ee565b84612326565b602080601f8311600181146123d3575f84156123bc5750858301515b5f19600386901b1c1916600185901b17855561242a565b5f85815260208120601f198616915b82811015612401578886015182559484019460019091019084016123e2565b508582101561241e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080857610808612432565b8181038181111561080857610808612432565b5f6020828403121561247c575f80fd5b815161189181611ee0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156124d75784516001600160a01b0316835293830193918301916001016124b2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261251257634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108085761080861243256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee6fb8f82bd9552274b354ee885432eaa54356707683560ae39e234438527e0e64736f6c63430008170033
Deployed Bytecode Sourcemap
4324:15115:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13091:169;;;;;;;;;;-1:-1:-1;13091:169:0;;;;;:::i;:::-;;:::i;:::-;;17361:115;;;;;;;;;;;;;:::i;6912:83::-;;;;;;;;;;-1:-1:-1;6982:5:0;;;;;;;;;;;;-1:-1:-1;;;6982:5:0;;;;6912:83;;;;;;;:::i;:::-;;;;;;;;7844:193;;;;;;;;;;-1:-1:-1;7844:193:0;;;;;:::i;:::-;;:::i;:::-;;;2726:14:1;;2719:22;2701:41;;2689:2;2674:18;7844:193:0;2561:187:1;17485:109:0;;;;;;;;;;-1:-1:-1;17485:109:0;;;;;:::i;:::-;;:::i;5722:41::-;;;;;;;;;;-1:-1:-1;5722:41:0;;;;-1:-1:-1;;;;;5722:41:0;;;;;;-1:-1:-1;;;;;3128:32:1;;;3110:51;;3098:2;3083:18;5722:41:0;2938:229:1;7192:95:0;;;;;;;;;;-1:-1:-1;4895:17:0;7192:95;;;3318:25:1;;;3306:2;3291:18;7192:95:0;3172:177:1;8046:446:0;;;;;;;;;;-1:-1:-1;8046:446:0;;;;;:::i;:::-;;:::i;18970:367::-;;;;;;;;;;-1:-1:-1;18970:367:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;17724:229::-;;;;;;;;;;-1:-1:-1;17724:229:0;;;;;:::i;:::-;;:::i;18582:85::-;;;;;;;;;;-1:-1:-1;18651:5:0;:12;18582:85;;6042:61;;;;;;;;;;;;;;;;7100:83;;;;;;;;;;-1:-1:-1;7100:83:0;;4568:1;5287:36:1;;5275:2;5260:18;7100:83:0;5145:184:1;5770:28:0;;;;;;;;;;-1:-1:-1;5770:28:0;;;;-1:-1:-1;;;;;5770:28:0;;;18238:340;;;;;;;;;;-1:-1:-1;18238:340:0;;;;;:::i;:::-;;:::i;13269:92::-;;;;;;;;;;-1:-1:-1;13269:92:0;;;;;:::i;:::-;;:::i;17252:101::-;;;;;;;;;;-1:-1:-1;17252:101:0;;;;;:::i;:::-;;:::i;12847:235::-;;;;;;;;;;;;;:::i;7296:138::-;;;;;;;;;;-1:-1:-1;7296:138:0;;;;;:::i;:::-;;:::i;18055:20::-;;;;;;;;;;-1:-1:-1;18055:20:0;;;;;:::i;:::-;;:::i;5914:55::-;;;;;;;;;;;;;;;;18772:26;;;;;;;;;;-1:-1:-1;18772:26:0;;;;;:::i;:::-;;:::i;1582:79::-;;;;;;;;;;-1:-1:-1;1620:7:0;1647:6;-1:-1:-1;;;;;1647:6:0;1582:79;;12455:138;;;;;;;;;;-1:-1:-1;12455:138:0;;;;;:::i;:::-;;:::i;5977:57::-;;;;;;;;;;;;;;;;17603:112;;;;;;;;;;-1:-1:-1;17603:112:0;;;;;:::i;:::-;;:::i;7004:87::-;;;;;;;;;;-1:-1:-1;7076:7:0;;;;;;;;;;;;-1:-1:-1;;;7076:7:0;;;;7004:87;;17104:139;;;;;;;;;;-1:-1:-1;17104:139:0;;;;;:::i;:::-;;:::i;7443:199::-;;;;;;;;;;-1:-1:-1;7443:199:0;;;;;:::i;:::-;;:::i;18080:154::-;;;;;;;;;;-1:-1:-1;18080:154:0;;;;;:::i;:::-;;:::i;5416:36::-;;;;;;;;;;-1:-1:-1;5416:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12602:236;;;;;;;;;;;;;:::i;19341:91::-;;;;;;;;;;-1:-1:-1;19413:8:0;:15;19341:91;;16793:302;;;;;;;;;;-1:-1:-1;16793:302:0;;;;;:::i;:::-;;:::i;5008:26::-;;;;;;;;;;;;;;;;7651:184;;;;;;;;;;-1:-1:-1;7651:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7800:18:0;;;7768:7;7800:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7651:184;18803:163;;;;;;;;;;-1:-1:-1;18803:163:0;;;;;:::i;:::-;;:::i;1954:244::-;;;;;;;;;;-1:-1:-1;1954:244:0;;;;;:::i;:::-;;:::i;1798:147::-;;;;;;;;;;;;;:::i;13091:169::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;;;;;;;;;13167:9:::1;13162:91;13186:5;:12;13182:1;:16;13162:91;;;13237:4;13220;:14;13225:5;13231:1;13225:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13220:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13220:14:0;:21;;-1:-1:-1;;13220:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13200:3:0::1;13162:91;;;;13091:169:::0;:::o;17361:115::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;4895:17:::1;17411:12;:22:::0;;;17444:14:::1;:24:::0;17361:115::o;7844:193::-;7946:4;7968:39;410:10;7991:7;8000:6;7968:8;:39::i;:::-;-1:-1:-1;8025:4:0;7844:193;;;;;:::o;17485:109::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;17560:12:::1;:26:::0;17485:109::o;8046:446::-;8178:4;8195:36;8205:6;8213:9;8224:6;8195:9;:36::i;:::-;8242:220;8265:6;410:10;8313:138;8369:6;8313:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8313:19:0;;;;;;:11;:19;;;;;;;;410:10;8313:33;;;;;;;;;;:37;:138::i;:::-;8242:8;:220::i;:::-;-1:-1:-1;8480:4:0;8046:446;;;;;:::o;18970:367::-;19028:7;19037;19046:12;19060:5;19138:8;:15;;;;19129:6;:24;19121:56;;;;-1:-1:-1;;;19121:56:0;;8660:2:1;19121:56:0;;;8642:21:1;8699:2;8679:18;;;8672:30;-1:-1:-1;;;8718:18:1;;;8711:49;8777:18;;19121:56:0;8458:343:1;19121:56:0;19190:29;19222:8;19231:6;19222:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;19253;;;19271:18;;;19310:22;;;;19291:17;;;19245:88;;19222:16;;-1:-1:-1;;;;;;19253:16:0;;;;19271:18;;19291:17;19310:22;;;;;19291:17;;19245:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18970:367;;;;;:::o;17724:229::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;17836:9:::1;17832:114;17851:19:::0;;::::1;17832:114;;;17926:8;17892:18;:31;17911:8;;17920:1;17911:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17892:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17892:31:0;:42;;-1:-1:-1;;17892:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17872:3:0::1;17832:114;;;;17724:229:::0;;;:::o;18238:340::-;18293:7;18302;18311:12;18325:5;18403;:12;;;;18394:6;:21;18386:53;;;;-1:-1:-1;;;18386:53:0;;8660:2:1;18386:53:0;;;8642:21:1;8699:2;8679:18;;;8672:30;-1:-1:-1;;;8718:18:1;;;8711:49;8777:18;;18386:53:0;8458:343:1;18386:53:0;18452:23;18478:5;18484:6;18478:13;;;;;;;;:::i;13269:92::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13333:12:0::1;13348:5;13333:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13333:20:0::1;::::0;;13269:92::o;17252:101::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;17319:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17319:26:0::1;-1:-1:-1::0;;;;17319:26:0;;::::1;::::0;;;::::1;::::0;;17252:101::o;12847:235::-;12913:19;;-1:-1:-1;;;;;12913:19:0;410:10;-1:-1:-1;;;;;12897:35:0;;:72;;;-1:-1:-1;12952:17:0;;-1:-1:-1;;;;;12952:17:0;410:10;-1:-1:-1;;;;;12936:33:0;;12897:72;12889:81;;;;;;13010:21;13042:32;13010:21;13042:12;:32::i;:::-;12878:204;12847:235::o;7296:138::-;-1:-1:-1;;;;;7409:16:0;;7362:7;7409:16;;;:7;:16;;;;;;7389:37;;:19;:37::i;18055:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18055:20:0;;;;-1:-1:-1;18055:20:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18055:20:0;;;;;;;-1:-1:-1;;18055:20:0;;;:::o;18772:26::-;;;;;;;;;;;;12455:138;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;12522:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12522:26:0::1;-1:-1:-1::0;;;;12522:26:0;;::::1;::::0;;;::::1;::::0;;12573:12:::1;12559:11;:26:::0;12455:138::o;17603:112::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;17677:14:::1;:30:::0;17603:112::o;17104:139::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;17195:19:::1;:40:::0;17104:139::o;7443:199::-;7548:4;7570:42;410:10;7594:9;7605:6;7570:9;:42::i;18080:154::-;18191:38;;;;;;;;-1:-1:-1;;;;;18191:38:0;;;;;;;;;;;;;;;;;;;;;;;;18180:5;:50;;;;;;;-1:-1:-1;18180:50:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18180:50:0;;;;;;;;;;;;;;;18191:38;;18180:50;;;;;;;;;;;:::i;:::-;-1:-1:-1;18180:50:0;;;;;;;;;;;;-1:-1:-1;;18180:50:0;;;;;;;;;;;-1:-1:-1;;;;18080:154:0:o;12602:236::-;12668:19;;-1:-1:-1;;;;;12668:19:0;410:10;-1:-1:-1;;;;;12652:35:0;;:72;;;-1:-1:-1;12707:17:0;;-1:-1:-1;;;;;12707:17:0;410:10;-1:-1:-1;;;;;12691:33:0;;12652:72;12644:81;;;;;;12736:23;12762:24;12780:4;12762:9;:24::i;:::-;12736:50;;12797:33;12814:15;12797:16;:33::i;16793:302::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;16935:14:::1;:30:::0;;;;16976:15:::1;:32:::0;;;;17022:12:::1;:26:::0;17059:13:::1;:28:::0;16793:302::o;18803:163::-;18920:41;;;;;;;;-1:-1:-1;;;;;18920:41:0;;;;;;;;;;;;;;;;;;;;;;;;18906:8;:56;;;;;;;-1:-1:-1;18906:56:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18906:56:0;;;;;;;;;;;;;;;18920:41;;18906:56;;;;;;;;;;;:::i;1954:244::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2043:22:0;::::1;2035:73;;;::::0;-1:-1:-1;;;2035:73:0;;11557:2:1;2035:73:0::1;::::0;::::1;11539:21:1::0;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:36;11732:19;;2035:73:0::1;11355:402:1::0;2035:73:0::1;2145:6;::::0;;2124:38:::1;::::0;-1:-1:-1;;;;;2124:38:0;;::::1;::::0;2145:6;::::1;::::0;2124:38:::1;::::0;::::1;2173:6;:17:::0;;-1:-1:-1;;;;;;2173:17:0::1;-1:-1:-1::0;;;;;2173:17:0;;;::::1;::::0;;;::::1;::::0;;1954:244::o;1798:147::-;1710:6;;-1:-1:-1;;;;;1710:6:0;410:10;1710:22;1702:67;;;;-1:-1:-1;;;1702:67:0;;;;;;;:::i;:::-;1904:1:::1;1888:6:::0;;1867:40:::1;::::0;-1:-1:-1;;;;;1888:6:0;;::::1;::::0;1867:40:::1;::::0;1904:1;;1867:40:::1;1935:1;1918:19:::0;;-1:-1:-1;;;;;;1918:19:0::1;::::0;;1798:147::o;9189:369::-;-1:-1:-1;;;;;9316:19:0;;9308:68;;;;-1:-1:-1;;;9308:68:0;;11964:2:1;9308:68:0;;;11946:21:1;12003:2;11983:18;;;11976:30;12042:34;12022:18;;;12015:62;-1:-1:-1;;;12093:18:1;;;12086:34;12137:19;;9308:68:0;11762:400:1;9308:68:0;-1:-1:-1;;;;;9395:21:0;;9387:68;;;;-1:-1:-1;;;9387:68:0;;12369:2:1;9387:68:0;;;12351:21:1;12408:2;12388:18;;;12381:30;12447:34;12427:18;;;12420:62;-1:-1:-1;;;12498:18:1;;;12491:32;12540:19;;9387:68:0;12167:398:1;9387:68:0;-1:-1:-1;;;;;9466:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9518:32;;3318:25:1;;;9518:32:0;;3291:18:1;9518:32:0;;;;;;;9189:369;;;:::o;9567:2218::-;-1:-1:-1;;;;;9689:18:0;;9681:68;;;;-1:-1:-1;;;9681:68:0;;12772:2:1;9681:68:0;;;12754:21:1;12811:2;12791:18;;;12784:30;12850:34;12830:18;;;12823:62;-1:-1:-1;;;12901:18:1;;;12894:35;12946:19;;9681:68:0;12570:401:1;9681:68:0;-1:-1:-1;;;;;9768:16:0;;9760:64;;;;-1:-1:-1;;;9760:64:0;;13178:2:1;9760:64:0;;;13160:21:1;13217:2;13197:18;;;13190:30;13256:34;13236:18;;;13229:62;-1:-1:-1;;;13307:18:1;;;13300:33;13350:19;;9760:64:0;12976:399:1;9760:64:0;9852:1;9843:6;:10;9835:64;;;;-1:-1:-1;;;9835:64:0;;13582:2:1;9835:64:0;;;13564:21:1;13621:2;13601:18;;;13594:30;13660:34;13640:18;;;13633:62;-1:-1:-1;;;13711:18:1;;;13704:39;13760:19;;9835:64:0;13380:405:1;9835:64:0;1620:7;1647:6;-1:-1:-1;;;;;9917:15:0;;;1647:6;;9917:15;;;;:32;;-1:-1:-1;1620:7:0;1647:6;-1:-1:-1;;;;;9936:13:0;;;1647:6;;9936:13;;9917:32;9913:1232;;;9974:11;;-1:-1:-1;;;9974:11:0;;;;9969:144;;1620:7;1647:6;-1:-1:-1;;;;;10014:15:0;;;1647:6;;10014:15;10006:91;;;;-1:-1:-1;;;10006:91:0;;13992:2:1;10006:91:0;;;13974:21:1;14031:2;14011:18;;;14004:30;14070:34;14050:18;;;14043:62;14141:33;14121:18;;;14114:61;14192:19;;10006:91:0;13790:427:1;10006:91:0;10148:12;;10138:6;:22;;10130:63;;;;-1:-1:-1;;;10130:63:0;;14424:2:1;10130:63:0;;;14406:21:1;14463:2;14443:18;;;14436:30;14502;14482:18;;;14475:58;14550:18;;10130:63:0;14222:352:1;10130:63:0;-1:-1:-1;;;;;10217:10:0;;;;;;:4;:10;;;;;;;;10216:11;:24;;;;-1:-1:-1;;;;;;10232:8:0;;;;;;:4;:8;;;;;;;;10231:9;10216:24;10208:72;;;;-1:-1:-1;;;10208:72:0;;14781:2:1;10208:72:0;;;14763:21:1;14820:2;14800:18;;;14793:30;14859:34;14839:18;;;14832:62;-1:-1:-1;;;14910:18:1;;;14903:33;14953:19;;10208:72:0;14579:399:1;10208:72:0;10307:13;;-1:-1:-1;;;;;10301:19:0;;;10307:13;;10301:19;10298:146;;10374:14;;10365:6;10349:13;10359:2;10349:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10341:87;;;;-1:-1:-1;;;10341:87:0;;15447:2:1;10341:87:0;;;15429:21:1;15486:2;15466:18;;;15459:30;15525:34;15505:18;;;15498:62;-1:-1:-1;;;15576:18:1;;;15569:33;15619:19;;10341:87:0;15245:399:1;10341:87:0;10461:28;10492:24;10510:4;10492:9;:24::i;:::-;10570:19;;10634:12;;10461:55;;-1:-1:-1;10546:43:0;;;;10610:36;;10607:124;;10703:12;;10680:35;;10607:124;10752:7;:18;;;;-1:-1:-1;10764:6:0;;-1:-1:-1;;;10764:6:0;;;;10763:7;10752:18;:43;;;;-1:-1:-1;10782:13:0;;-1:-1:-1;;;;;10774:21:0;;;10782:13;;10774:21;;10752:43;:58;;;;-1:-1:-1;10799:11:0;;-1:-1:-1;;;10799:11:0;;;;10752:58;:87;;;;-1:-1:-1;;;;;;10815:24:0;;;;;;:18;:24;;;;;;;;10814:25;10752:87;:114;;;;-1:-1:-1;;;;;;10844:22:0;;;;;;:18;:22;;;;;;;;10843:23;10752:114;10748:386;;;10887:38;10904:20;10887:16;:38::i;:::-;10973:21;11017:22;;11013:106;;11064:35;11077:21;11064:12;:35::i;:::-;10868:266;10748:386;9951:1194;;9913:1232;-1:-1:-1;;;;;11196:24:0;;11158:12;11196:24;;;:18;:24;;;;;;11173:4;;11196:24;;;:50;;-1:-1:-1;;;;;;11224:22:0;;;;;;:18;:22;;;;;;;;11196:50;11195:102;;;-1:-1:-1;11260:13:0;;-1:-1:-1;;;;;11252:21:0;;;11260:13;;11252:21;;;;:44;;-1:-1:-1;11283:13:0;;-1:-1:-1;;;;;11277:19:0;;;11283:13;;11277:19;;11252:44;11191:532;;;-1:-1:-1;11324:5:0;11191:532;;;11376:13;;-1:-1:-1;;;;;11368:21:0;;;11376:13;;11368:21;:55;;;;-1:-1:-1;11407:15:0;;-1:-1:-1;;;;;11393:30:0;;;11407:15;;11393:30;;11368:55;11365:162;;;11456:14;;11444:9;:26;11499:12;;11489:7;:22;11365:162;11554:13;;-1:-1:-1;;;;;11548:19:0;;;11554:13;;11548:19;:55;;;;-1:-1:-1;11587:15:0;;-1:-1:-1;;;;;11571:32:0;;;11587:15;;11571:32;;11548:55;11544:165;;;11636:15;;11624:9;:27;11680:13;;11670:7;:23;11544:165;11736:41;11751:4;11757:2;11761:6;11769:7;11736:14;:41::i;2566:224::-;2686:7;2722:12;2714:6;;;;2706:29;;;;-1:-1:-1;;;2706:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2746:9:0;2758:5;2762:1;2758;:5;:::i;:::-;2746:17;2566:224;-1:-1:-1;;;;;2566:224:0:o;12286:160::-;12343:19;;-1:-1:-1;;;;;12343:19:0;:43;12372:13;:6;12383:1;12372:10;:13::i;:::-;12343:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12397:17:0;;-1:-1:-1;;;;;12397:17:0;:41;12424:13;:6;12435:1;12424:10;:13::i;:::-;12397:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8501:323;8596:7;8654;;8643;:18;;8621:110;;;;-1:-1:-1;;;8621:110:0;;15984:2:1;8621:110:0;;;15966:21:1;16023:2;16003:18;;;15996:30;16062:34;16042:18;;;16035:62;-1:-1:-1;;;16113:18:1;;;16106:40;16163:19;;8621:110:0;15782:406:1;8621:110:0;8742:19;8764:10;:8;:10::i;:::-;8742:32;-1:-1:-1;8792:24:0;:7;8742:32;8792:11;:24::i;:::-;8785:31;8501:323;-1:-1:-1;;;8501:323:0:o;11794:483::-;6199:6;:13;;-1:-1:-1;;;;6199:13:0;-1:-1:-1;;;6199:13:0;;;11896:16:::1;::::0;;11910:1:::1;11896:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11896:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11896:16:0::1;11872:40;;11941:4;11923;11928:1;11923:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11923:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11967:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11967:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11923:7;;11967:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11957:4;11962:1;11957:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11957:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12032:15:::1;::::0;12000:62:::1;::::0;12017:4:::1;::::0;12032:15:::1;12050:11:::0;12000:8:::1;:62::i;:::-;12073:15;::::0;:196:::1;::::0;-1:-1:-1;;;12073:196:0;;-1:-1:-1;;;;;12073:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12154:11;;12073:15:::1;::::0;12196:4;;12223::::1;::::0;12243:15:::1;::::0;12073:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6235:6:0;:14;;-1:-1:-1;;;;6235:14:0;;;-1:-1:-1;;;;11794:483:0:o;13370:282::-;13526:7;13521:28;;13535:14;:12;:14::i;:::-;13560:44;13578:6;13586:9;13597:6;13560:17;:44::i;:::-;13620:7;13615:29;;13629:15;9119:17;;9107:9;:29;9157:15;;9147:7;:25;9063:117;3054:132;3112:7;3139:39;3143:1;3146;3139:39;;;;;;;;;;;;;;;;;:3;:39::i;16348:167::-;16390:7;16411:15;16428;16447:19;:17;:19::i;:::-;16410:56;;-1:-1:-1;16410:56:0;-1:-1:-1;16487:20:0;16410:56;;16487:11;:20::i;:::-;16480:27;;;;16348:167;:::o;8833:221::-;8880:9;;:14;:30;;;;-1:-1:-1;8898:7:0;;:12;8880:30;8876:43;;;8833:221::o;8876:43::-;8952:9;;;8932:17;:29;8990:7;;;8972:15;:25;-1:-1:-1;9011:13:0;;;;9035:11;8833:221::o;13661:610::-;13808:15;13838:23;13876:12;13903:23;13941:12;13968:13;13995:19;14006:7;13995:10;:19::i;:::-;-1:-1:-1;;;;;14043:15:0;;;;;;:7;:15;;;;;;13793:221;;-1:-1:-1;13793:221:0;;-1:-1:-1;13793:221:0;;-1:-1:-1;13793:221:0;-1:-1:-1;13793:221:0;-1:-1:-1;13793:221:0;-1:-1:-1;14043:28:0;;13793:221;14043:19;:28::i;:::-;-1:-1:-1;;;;;14025:15:0;;;;;;;:7;:15;;;;;;:46;;;;14103:18;;;;;;;:39;;14126:15;14103:22;:39::i;:::-;-1:-1:-1;;;;;14082:18:0;;;;;;:7;:18;;;;;:60;14153:16;14163:5;14153:9;:16::i;:::-;14180:23;14192:4;14198;14180:11;:23::i;:::-;14236:9;-1:-1:-1;;;;;14219:44:0;14228:6;-1:-1:-1;;;;;14219:44:0;;14247:15;14219:44;;;;3318:25:1;;3306:2;3291:18;;3172:177;14219:44:0;;;;;;;;13782:489;;;;;;13661:610;;;:::o;3195:223::-;3315:7;3350:12;3343:5;3335:28;;;;-1:-1:-1;;;3335:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3374:9:0;3386:5;3390:1;3386;:5;:::i;16524:260::-;16622:7;;16575;;;;4895:17;16690:20;16622:7;4895:17;16690:11;:20::i;:::-;16680:7;:30;16676:61;;;-1:-1:-1;;16720:7:0;;;4895:17;;-1:-1:-1;16524:260:0;-1:-1:-1;16524:260:0:o;16676:61::-;16759:7;;16768;;-1:-1:-1;16524:260:0;-1:-1:-1;16524:260:0:o;14694:618::-;14794:7;14816;14838;14860;14882;14904;14940:23;14965:12;14979:13;15009:40;15021:7;15030:9;;15041:7;;15009:11;:40::i;:::-;14939:110;;;;;;15060:19;15082:10;:8;:10::i;:::-;15060:32;;15104:15;15121:23;15146:12;15175:46;15187:7;15196:4;15202:5;15209:11;15175;:46::i;:::-;15103:118;;-1:-1:-1;15103:118:0;-1:-1:-1;15103:118:0;-1:-1:-1;15275:15:0;;-1:-1:-1;15292:4:0;;-1:-1:-1;15298:5:0;;-1:-1:-1;;;;;14694:618:0;;;;;;;:::o;2421:136::-;2479:7;2506:43;2510:1;2513;2506:43;;;;;;;;;;;;;;;;;:3;:43::i;2233:179::-;2291:7;;2323:5;2327:1;2323;:5;:::i;:::-;2311:17;;2352:1;2347;:6;;2339:46;;;;-1:-1:-1;;;2339:46:0;;17858:2:1;2339:46:0;;;17840:21:1;17897:2;17877:18;;;17870:30;17936:29;17916:18;;;17909:57;17983:18;;2339:46:0;17656:351:1;14280:211:0;14333:19;14355:10;:8;:10::i;:::-;14333:32;-1:-1:-1;14376:13:0;14392:22;:5;14333:32;14392:9;:22::i;:::-;14466:4;14450:22;;;;:7;:22;;;;;;14376:38;;-1:-1:-1;14450:33:0;;14376:38;14450:26;:33::i;:::-;14441:4;14425:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14280:211:0:o;14500:147::-;14578:7;;:17;;14590:4;14578:11;:17::i;:::-;14568:7;:27;14619:10;;:20;;14634:4;14619:14;:20::i;:::-;14606:10;:33;-1:-1:-1;;14500:147:0:o;15321:472::-;15490:7;;;;15584:30;15610:3;15584:21;:7;15596:8;15584:11;:21::i;:::-;:25;;:30::i;:::-;15569:45;-1:-1:-1;15625:13:0;15641:28;15665:3;15641:19;:7;15653:6;15641:11;:19::i;:28::-;15625:44;-1:-1:-1;15680:23:0;15706:28;15625:44;15706:17;:7;15718:4;15706:11;:17::i;:::-;:21;;:28::i;:::-;15680:54;15773:4;;-1:-1:-1;15779:5:0;;-1:-1:-1;15321:472:0;;-1:-1:-1;;;;;15321:472:0:o;15802:537::-;15996:7;;;;16093:24;:7;16105:11;16093;:24::i;:::-;16075:42;-1:-1:-1;16128:12:0;16143:21;:4;16152:11;16143:8;:21::i;:::-;16128:36;-1:-1:-1;16175:13:0;16191:22;:5;16201:11;16191:9;:22::i;:::-;16175:38;-1:-1:-1;16224:23:0;16250:28;16175:38;16250:17;:7;16262:4;16250:11;:17::i;:28::-;16300:7;;;;-1:-1:-1;16326:4:0;;-1:-1:-1;15802:537:0;;-1:-1:-1;;;;;;;15802:537:0:o;2799:246::-;2857:7;2881:1;2886;2881:6;2877:47;;-1:-1:-1;2911:1:0;2904:8;;2877:47;2934:9;2946:5;2950:1;2946;:5;:::i;:::-;2934:17;-1:-1:-1;2979:1:0;2970:5;2974:1;2934:17;2970:5;:::i;:::-;:10;2962:56;;;;-1:-1:-1;;;2962:56:0;;18387:2:1;2962:56:0;;;18369:21:1;18426:2;18406:18;;;18399:30;18465:34;18445:18;;;18438:62;-1:-1:-1;;;18516:18:1;;;18509:31;18557:19;;2962:56:0;18185:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:131::-;-1:-1:-1;;;;;501:31:1;;491:42;;481:70;;547:1;544;537:12;562:1021;646:6;677:2;720;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;776:9;763:23;805:18;846:2;838:6;835:14;832:34;;;862:1;859;852:12;832:34;900:6;889:9;885:22;875:32;;945:7;938:4;934:2;930:13;926:27;916:55;;967:1;964;957:12;916:55;1003:2;990:16;1025:2;1021;1018:10;1015:36;;;1031:18;;:::i;:::-;1077:2;1074:1;1070:10;1060:20;;1100:28;1124:2;1120;1116:11;1100:28;:::i;:::-;1162:15;;;1232:11;;;1228:20;;;1193:12;;;;1260:19;;;1257:39;;;1292:1;1289;1282:12;1257:39;1316:11;;;;1336:217;1352:6;1347:3;1344:15;1336:217;;;1432:3;1419:17;1406:30;;1449:31;1474:5;1449:31;:::i;:::-;1493:18;;;1369:12;;;;1531;;;;1336:217;;;1572:5;562:1021;-1:-1:-1;;;;;;;;562:1021:1:o;1588:423::-;1630:3;1668:5;1662:12;1695:6;1690:3;1683:19;1720:1;1730:162;1744:6;1741:1;1738:13;1730:162;;;1806:4;1862:13;;;1858:22;;1852:29;1834:11;;;1830:20;;1823:59;1759:12;1730:162;;;1734:3;1937:1;1930:4;1921:6;1916:3;1912:16;1908:27;1901:38;2000:4;1993:2;1989:7;1984:2;1976:6;1972:15;1968:29;1963:3;1959:39;1955:50;1948:57;;;1588:423;;;;:::o;2016:220::-;2165:2;2154:9;2147:21;2128:4;2185:45;2226:2;2215:9;2211:18;2203:6;2185:45;:::i;2241:315::-;2309:6;2317;2370:2;2358:9;2349:7;2345:23;2341:32;2338:52;;;2386:1;2383;2376:12;2338:52;2425:9;2412:23;2444:31;2469:5;2444:31;:::i;:::-;2494:5;2546:2;2531:18;;;;2518:32;;-1:-1:-1;;;2241:315:1:o;2753:180::-;2812:6;2865:2;2853:9;2844:7;2840:23;2836:32;2833:52;;;2881:1;2878;2871:12;2833:52;-1:-1:-1;2904:23:1;;2753:180;-1:-1:-1;2753:180:1:o;3354:456::-;3431:6;3439;3447;3500:2;3488:9;3479:7;3475:23;3471:32;3468:52;;;3516:1;3513;3506:12;3468:52;3555:9;3542:23;3574:31;3599:5;3574:31;:::i;:::-;3624:5;-1:-1:-1;3681:2:1;3666:18;;3653:32;3694:33;3653:32;3694:33;:::i;:::-;3354:456;;3746:7;;-1:-1:-1;;;3800:2:1;3785:18;;;;3772:32;;3354:456::o;3815:466::-;4071:1;4067;4062:3;4058:11;4054:19;4046:6;4042:32;4031:9;4024:51;4111:6;4106:2;4095:9;4091:18;4084:34;4154:3;4149:2;4138:9;4134:18;4127:31;4005:4;4175:46;4216:3;4205:9;4201:19;4193:6;4175:46;:::i;:::-;4167:54;;4269:4;4261:6;4257:17;4252:2;4241:9;4237:18;4230:45;3815:466;;;;;;;:::o;4286:160::-;4351:20;;4407:13;;4400:21;4390:32;;4380:60;;4436:1;4433;4426:12;4380:60;4286:160;;;:::o;4451:689::-;4543:6;4551;4559;4612:2;4600:9;4591:7;4587:23;4583:32;4580:52;;;4628:1;4625;4618:12;4580:52;4668:9;4655:23;4697:18;4738:2;4730:6;4727:14;4724:34;;;4754:1;4751;4744:12;4724:34;4792:6;4781:9;4777:22;4767:32;;4837:7;4830:4;4826:2;4822:13;4818:27;4808:55;;4859:1;4856;4849:12;4808:55;4899:2;4886:16;4925:2;4917:6;4914:14;4911:34;;;4941:1;4938;4931:12;4911:34;4996:7;4989:4;4979:6;4976:1;4972:14;4968:2;4964:23;4960:34;4957:47;4954:67;;;5017:1;5014;5007:12;4954:67;5048:4;5040:13;;;;-1:-1:-1;5072:6:1;-1:-1:-1;5097:37:1;;5113:20;;;-1:-1:-1;5097:37:1;:::i;:::-;5087:47;;4451:689;;;;;:::o;5542:247::-;5601:6;5654:2;5642:9;5633:7;5629:23;5625:32;5622:52;;;5670:1;5667;5660:12;5622:52;5709:9;5696:23;5728:31;5753:5;5728:31;:::i;5794:180::-;5850:6;5903:2;5891:9;5882:7;5878:23;5874:32;5871:52;;;5919:1;5916;5909:12;5871:52;5942:26;5958:9;5942:26;:::i;5979:156::-;6045:20;;6105:4;6094:16;;6084:27;;6074:55;;6125:1;6122;6115:12;6140:1037;6233:6;6241;6249;6257;6310:3;6298:9;6289:7;6285:23;6281:33;6278:53;;;6327:1;6324;6317:12;6278:53;6366:9;6353:23;6385:31;6410:5;6385:31;:::i;:::-;6435:5;-1:-1:-1;6459:2:1;6493:18;;;6480:32;;-1:-1:-1;6563:2:1;6548:18;;6535:32;6586:18;6616:14;;;6613:34;;;6643:1;6640;6633:12;6613:34;6681:6;6670:9;6666:22;6656:32;;6726:7;6719:4;6715:2;6711:13;6707:27;6697:55;;6748:1;6745;6738:12;6697:55;6784:2;6771:16;6806:2;6802;6799:10;6796:36;;;6812:18;;:::i;:::-;6854:53;6897:2;6878:13;;-1:-1:-1;;6874:27:1;6870:36;;6854:53;:::i;:::-;6841:66;;6930:2;6923:5;6916:17;6970:7;6965:2;6960;6956;6952:11;6948:20;6945:33;6942:53;;;6991:1;6988;6981:12;6942:53;7046:2;7041;7037;7033:11;7028:2;7021:5;7017:14;7004:45;7090:1;7085:2;7080;7073:5;7069:14;7065:23;7058:34;;7111:5;7101:15;;;;;7135:36;7167:2;7156:9;7152:18;7135:36;:::i;:::-;7125:46;;6140:1037;;;;;;;:::o;7182:385::-;7268:6;7276;7284;7292;7345:3;7333:9;7324:7;7320:23;7316:33;7313:53;;;7362:1;7359;7352:12;7313:53;-1:-1:-1;;7385:23:1;;;7455:2;7440:18;;7427:32;;-1:-1:-1;7506:2:1;7491:18;;7478:32;;7557:2;7542:18;7529:32;;-1:-1:-1;7182:385:1;-1:-1:-1;7182:385:1:o;7572:388::-;7640:6;7648;7701:2;7689:9;7680:7;7676:23;7672:32;7669:52;;;7717:1;7714;7707:12;7669:52;7756:9;7743:23;7775:31;7800:5;7775:31;:::i;:::-;7825:5;-1:-1:-1;7882:2:1;7867:18;;7854:32;7895:33;7854:32;7895:33;:::i;:::-;7947:7;7937:17;;;7572:388;;;;;:::o;7965:356::-;8167:2;8149:21;;;8186:18;;;8179:30;8245:34;8240:2;8225:18;;8218:62;8312:2;8297:18;;7965:356::o;8326:127::-;8387:10;8382:3;8378:20;8375:1;8368:31;8418:4;8415:1;8408:15;8442:4;8439:1;8432:15;8806:380;8885:1;8881:12;;;;8928;;;8949:61;;9003:4;8995:6;8991:17;8981:27;;8949:61;9056:2;9048:6;9045:14;9025:18;9022:38;9019:161;;9102:10;9097:3;9093:20;9090:1;9083:31;9137:4;9134:1;9127:15;9165:4;9162:1;9155:15;9019:161;;8806:380;;;:::o;9316:517::-;9417:2;9412:3;9409:11;9406:421;;;9453:5;9450:1;9443:16;9497:4;9494:1;9484:18;9567:2;9555:10;9551:19;9548:1;9544:27;9538:4;9534:38;9603:4;9591:10;9588:20;9585:47;;;-1:-1:-1;9626:4:1;9585:47;9681:2;9676:3;9672:12;9669:1;9665:20;9659:4;9655:31;9645:41;;9736:81;9754:2;9747:5;9744:13;9736:81;;;9813:1;9799:16;;9780:1;9769:13;9736:81;;;9740:3;;9406:421;9316:517;;;:::o;10009:1341::-;10133:3;10127:10;10160:18;10152:6;10149:30;10146:56;;;10182:18;;:::i;:::-;10211:96;10300:6;10260:38;10292:4;10286:11;10260:38;:::i;:::-;10254:4;10211:96;:::i;:::-;10362:4;;10419:2;10408:14;;10436:1;10431:662;;;;11137:1;11154:6;11151:89;;;-1:-1:-1;11206:19:1;;;11200:26;11151:89;-1:-1:-1;;9966:1:1;9962:11;;;9958:24;9954:29;9944:40;9990:1;9986:11;;;9941:57;11253:81;;10401:943;;10431:662;9263:1;9256:14;;;9300:4;9287:18;;-1:-1:-1;;10467:20:1;;;10584:236;10598:7;10595:1;10592:14;10584:236;;;10687:19;;;10681:26;10666:42;;10779:27;;;;10747:1;10735:14;;;;10614:19;;10584:236;;;10588:3;10848:6;10839:7;10836:19;10833:201;;;10909:19;;;10903:26;-1:-1:-1;;10992:1:1;10988:14;;;11004:3;10984:24;10980:37;10976:42;10961:58;10946:74;;10833:201;;;11080:1;11071:6;11068:1;11064:14;11060:22;11054:4;11047:36;10401:943;;;;;10009:1341;;:::o;14983:127::-;15044:10;15039:3;15035:20;15032:1;15025:31;15075:4;15072:1;15065:15;15099:4;15096:1;15089:15;15115:125;15180:9;;;15201:10;;;15198:36;;;15214:18;;:::i;15649:128::-;15716:9;;;15737:11;;;15734:37;;;15751:18;;:::i;16193:251::-;16263:6;16316:2;16304:9;16295:7;16291:23;16287:32;16284:52;;;16332:1;16329;16322:12;16284:52;16364:9;16358:16;16383:31;16408:5;16383:31;:::i;16449:980::-;16711:4;16759:3;16748:9;16744:19;16790:6;16779:9;16772:25;16816:2;16854:6;16849:2;16838:9;16834:18;16827:34;16897:3;16892:2;16881:9;16877:18;16870:31;16921:6;16956;16950:13;16987:6;16979;16972:22;17025:3;17014:9;17010:19;17003:26;;17064:2;17056:6;17052:15;17038:29;;17085:1;17095:195;17109:6;17106:1;17103:13;17095:195;;;17174:13;;-1:-1:-1;;;;;17170:39:1;17158:52;;17265:15;;;;17230:12;;;;17206:1;17124:9;17095:195;;;-1:-1:-1;;;;;;;17346:32:1;;;;17341:2;17326:18;;17319:60;-1:-1:-1;;;17410:3:1;17395:19;17388:35;17307:3;16449:980;-1:-1:-1;;;16449:980:1:o;17434:217::-;17474:1;17500;17490:132;;17544:10;17539:3;17535:20;17532:1;17525:31;17579:4;17576:1;17569:15;17607:4;17604:1;17597:15;17490:132;-1:-1:-1;17636:9:1;;17434:217::o;18012:168::-;18085:9;;;18116;;18133:15;;;18127:22;;18113:37;18103:71;;18154:18;;:::i
Swarm Source
ipfs://ee6fb8f82bd9552274b354ee885432eaa54356707683560ae39e234438527e0e
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)