MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (2024)

MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (1)

0x3f1Ac45D37eC39E8289Fc8311612E1A77021c119

Source Code

Overview

ETH Balance

0 ETH

Token Holdings

  • ERC-20 Tokens (1)

  • MAKE RUSSIA ... (MRGA)113,061,361.412579 MRGA
View All Holdings

More Info

Private Name Tags

Add

ContractCreator

0x69A174a2...A7D41eAE9 at txn 0x5f67b228d916dfa06bd93ba9400cd71af70b70b8c5b956e362f682bb637b16a0

TokenTracker

MAKE RUSSIA GREAT AGAIN (MRGA)

Multichain Info

$0 (Multichain Portfolio)

No addresses found

  • Transactions
  • Internal Transactions
  • Token Transfers (ERC-20)
  • Contract
  • Events
  • Analytics
  • Multichain Portfolio
  • CardsNew

Advanced Filter

  • Filter by Tx Type:
  • Tx
  • Internal Tx
  • ERC-20

Latest 25 from a total of 199 transactions

  • View Completed Txns
  • View Pending Txns
  • View Failed Txns
  • View Outgoing Txns
  • View Incoming Txns
  • View Contract Creation
Transaction Hash

Method

Block

From

To

Value

0xe75ded214e6a8ff5844d3fc550be01259e58fad69c5e5cd68354063ad5d8df30

Approve200643141 hr ago

0x0217D9A8...49c583708

IN

0x3f1Ac45D...77021c119

0 ETH0.00059647

0xc52fe4bcd76d7be003b60215b880a46f660bb5f0ec198705ff7320e773527d2a

Approve200634274 hrs ago

0x106a9A4C...E6bA5Fd72

IN

0x3f1Ac45D...77021c119

0 ETH0.00116574

0xc61c7593025ba337210f7e21a69b10719f5416d17d5846c681f1600f9c3ebd18

Approve200628426 hrs ago

MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (15)roybitsir.eth

IN

0x3f1Ac45D...77021c119

0 ETH0.00076497

0x8ead6ee62328c7bbb52146de1b522a283fa838bf81827fa6d15f1abf6261a643

Approve200624557 hrs ago

0xAe8a087f...1d69cBBe5

IN

0x3f1Ac45D...77021c119

0 ETH0.00090039

0xe560acfc2ed57aa0eaf74e36b934a791dfd2f39777495a459dd16720f6d69e8e

Approve200618509 hrs ago

0x04aeb6E0...EF7481F01

IN

0x3f1Ac45D...77021c119

0 ETH0.00054427

0xd73d4fa9351ed8623e1f082bfc006828654bdef13571995102ccb59b4c0a308d

Approve2006149410 hrs ago

0x72ab738E...b04d43A11

IN

0x3f1Ac45D...77021c119

0 ETH0.00030997

0x445852e4ccc1b63414f6275c2bd61f6be6492a1089cffe8459546bb08abd93ec

Approve2006136211 hrs ago

0x388215dD...C0d23C5c3

IN

0x3f1Ac45D...77021c119

0 ETH0.00052433

0xf88ff91767a3504916003ef49a4044d044bf162814d118924d7a0528eeafa494

Approve2006116511 hrs ago

0xC558d8ee...D76Fd62Eb

IN

0x3f1Ac45D...77021c119

0 ETH0.00024296

0x06db8abb7c4853bc29cca9dfccb2274797d0e0e5a15966593fd05563d674e769

Approve2006114411 hrs ago

0xFD82a92E...ef108d920

IN

0x3f1Ac45D...77021c119

0 ETH0.00014157

0x9e7f5d6441e21fb55686f1b6e7ccf92c8e5b626acd6921f9a92dbe5cf2096da8

Approve2006114211 hrs ago

0xFD82a92E...ef108d920

IN

0x3f1Ac45D...77021c119

0 ETH0.00013961

0xaa3eb0cc6d78c136d2d0934e41c33901e22f99cd27d031bdfe58b96fb05e5e44

Approve2006114111 hrs ago

0xFD82a92E...ef108d920

IN

0x3f1Ac45D...77021c119

0 ETH0.00024542

0x84fb32746da66a2566ce2049d2deaf572d85b7e317648b43b47abb6042a917fc

Approve2006110512 hrs ago

0x46D69ED1...c8a52d353

IN

0x3f1Ac45D...77021c119

0 ETH0.00029499

0xf9766b7b9534ca7fe9472056383c11b740b2d4e1ccef72587de27a1b072c46b8

Approve2006091912 hrs ago

0x7cDfc6EE...2DBBe9174

IN

0x3f1Ac45D...77021c119

0 ETH0.00039305

0x66821d0e8a9a3945ba18e70346ae4c24d40771276869164cfa6700ec66b92b69

Approve2006074013 hrs ago

0x03C30E3b...96511eedA

IN

0x3f1Ac45D...77021c119

0 ETH0.00029555

0xd55a28cef6b97a2c6c9623ac2f9c62d77ed50f5ba0ce0b7f9e1fd70e0939e4dc

Approve2006070113 hrs ago

0x1753c804...6925129D1

IN

0x3f1Ac45D...77021c119

0 ETH0.00035147

0x46ba16d89f10827a920e335a002fa2cf6cb5b999c6379d7aab0010ad8e10522c

Approve2006069913 hrs ago

0x1753c804...6925129D1

IN

0x3f1Ac45D...77021c119

0 ETH0.00031999

0x4cde63694f2b54df8f7d07e81fd83a9fc1ea3aea9eae52129deee4053818e88a

Approve2006050714 hrs ago

0xb44BA673...BF76ff7D7

IN

0x3f1Ac45D...77021c119

0 ETH0.00031606

0xc635aa946f9ed6cc1c5d5bf4410068c7cfb76a3e2f1c82daedec7c82e67c7fd3

Approve2006043214 hrs ago

0x57D6eDc1...5b2Cc000F

IN

0x3f1Ac45D...77021c119

0 ETH0.00037763

0x52fe89ddb39703b6c29f401e8f49ad9f3093f3033881d7408e345a03c486aa90

Approve2006026914 hrs ago

0xbD6D0CE2...e2ca369d6

IN

0x3f1Ac45D...77021c119

0 ETH0.00027449

0xaa622712e36dc392ed5d6bd0fe22acbc7358eeab4eeb1872481bbd792b2db82b

Approve2006018115 hrs ago

0x7391841C...778F7e2fC

IN

0x3f1Ac45D...77021c119

0 ETH0.00028028

0xed148a6309f1201e292a2984b6be9d975042d340bff054024a316fe1ff483688

Approve2006015815 hrs ago

0x2E43E48a...104AF1Fc3

IN

0x3f1Ac45D...77021c119

0 ETH0.00026271

0xc494d8d8fae3cc6c0ecbe464ff5f7a409875399bf130a67ee653409813553add

Approve2006010115 hrs ago

0x301d6049...a83321d4E

IN

0x3f1Ac45D...77021c119

0 ETH0.00030003

0xfd225ad31bd6705f92639c9c3518e5075fd405b39e1906ae2d1487d05a5d8b81

Approve2006006015 hrs ago

0x63Ad67Fd...aA9385099

IN

0x3f1Ac45D...77021c119

0 ETH0.00038021

0x992bde0f0edc846728c1818f9edbf75e81bf01104f9be297b1360a869999cd93

Approve2006001415 hrs ago

MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (16)nivek10.eth

IN

0x3f1Ac45D...77021c119

0 ETH0.00024248

0x687ca17da1f8cbca70825f13141e90533f17cd39aeaea37d9bcf719ce4c0f38f

Approve2006000415 hrs ago

0xcd0528a0...eF3D7A92d

IN

0x3f1Ac45D...77021c119

0 ETH0.00021369

View all transactions

Latest 14 internal transactions

Advanced mode:

Parent Transaction HashBlockFromToValue

0xc08a1fe75b92bdfe87c2c30ce7f97cb5ba5d0dbc73a212b96e38aae2fb26bae3

2005868020 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.10151936 ETH

0xc08a1fe75b92bdfe87c2c30ce7f97cb5ba5d0dbc73a212b96e38aae2fb26bae3

2005868020 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.10151936 ETH

0x14fa6f4ce6fa362d7454eec8c12fa7c125fb1ad34249f5348067eee4d6e9005d

2005865820 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.07234602 ETH

0x14fa6f4ce6fa362d7454eec8c12fa7c125fb1ad34249f5348067eee4d6e9005d

2005865820 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.07234602 ETH

0xf24a6089c6f6274111f0a22bd39cd215fd6fae7604a64a5d3413a71e1d07790b

2005864720 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.08288365 ETH

0xf24a6089c6f6274111f0a22bd39cd215fd6fae7604a64a5d3413a71e1d07790b

2005864720 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.08288365 ETH

0x11a09d2863dc5a70176fa5ff2908b0524e1fee4da02999d0c22486203fc3f519

2005862620 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.11667693 ETH

0x11a09d2863dc5a70176fa5ff2908b0524e1fee4da02999d0c22486203fc3f519

2005862620 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.11667693 ETH

0x35a25446c851bcea8473636a25b80616facfb7fdbdd778b0a5a4a0be69b5ee25

2005861020 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.16327058 ETH

0x35a25446c851bcea8473636a25b80616facfb7fdbdd778b0a5a4a0be69b5ee25

2005861020 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.16327058 ETH

0x58adddbfc1033abeb9aa0b06de1d23966908a73bfa23d07bda17f31fbfa94ea5

2005860820 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

0.25155594 ETH

0x58adddbfc1033abeb9aa0b06de1d23966908a73bfa23d07bda17f31fbfa94ea5

2005860820 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

0.25155594 ETH

0x31dccc4dcdfba76452a5a79a7b71f57c0b6b1d34100e1909974651d38f55f858

2005859320 hrs ago

0x3f1Ac45D...77021c119

0x69A174a2...A7D41eAE9

1.6025103 ETH

0x31dccc4dcdfba76452a5a79a7b71f57c0b6b1d34100e1909974651d38f55f858

2005859320 hrs ago

Uniswap V2: Router 2

0x3f1Ac45D...77021c119

1.6025103 ETH

Loading...

Loading

  • Code
  • Read Contract
  • Write Contract

Contract Source Code Verified (Exact Match)

Contract Name:

MRGA

Compiler Version

v0.8.17+commit.8df45f5f

Optimization Enabled:

Yes with 200 runs

Other Settings:

default evmVersion, MIT license

Contract Source Code (Solidity)

MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (17)MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (18)IDE

  • - function _msgSender()
  • - function _msgData()
  • interface IUniswapV2Pair
  • - function factory()
  • interface IUniswapV2Factory
  • - function createPair(address tokenA, a ...
  • interface IERC20
  • - function totalSupply()
  • - function balanceOf(address account)
  • - function transfer(address recipient, ...
  • - function allowance(address owner, add ...
  • - function approve(address spender, uin ...
  • - function transferFrom(
  • interface IERC20Metadata is IERC20
  • - function name()
  • - function symbol()
  • - function decimals()
  • contract ERC20 is Context, IERC20, ...
  • - function name()
  • - function symbol()
  • - function decimals()
  • - function totalSupply()
  • - function balanceOf(address account)
  • - function transfer(address recipient, ...
  • - function allowance(address owner, add ...
  • - function approve(address spender, uin ...
  • - function transferFrom(
  • - function increaseAllowance(address sp ...
  • - function decreaseAllowance(address sp ...
  • - function _transfer(
  • - function _mint(address account, uint2 ...
  • - function _burn(address account, uint2 ...
  • - function _approve(
  • - function _beforeTokenTransfer(
  • library SafeMath
  • - function add(uint256 a, uint256 b)
  • - function sub(uint256 a, uint256 b)
  • - function sub(uint256 a, uint256 b, st ...
  • - function mul(uint256 a, uint256 b)
  • - function div(uint256 a, uint256 b)
  • - function div(uint256 a, uint256 b, st ...
  • - function mod(uint256 a, uint256 b)
  • - function mod(uint256 a, uint256 b, st ...
  • contract Ownable is Context
  • - function owner()
  • - function renounceOwnership()
  • - function transferOwnership(address ne ...
  • library SafeMathInt
  • - function mul(int256 a, int256 b)
  • - function div(int256 a, int256 b)
  • - function sub(int256 a, int256 b)
  • - function add(int256 a, int256 b)
  • - function abs(int256 a)
  • - function toUint256Safe(int256 a)
  • library SafeMathUint
  • - function toInt256Safe(uint256 a)
  • interface IUniswapV2Router01
  • - function factory()
  • - function WETH()
  • - function addLiquidityETH(
  • interface IUniswapV2Router02 is IUnis ...
  • - function swapExactTokensForETHSupport ...
  • contract MRGA is ERC20, Ownable *
  • - function enableTrading()
  • - function removeLimits()
  • - function disableTransferDelay()
  • - function updateSwapTokensAtAmount(uin ...
  • - function updateMaxTxnAmount(uint256 n ...
  • - function updateMaxWalletAmount(uint25 ...
  • - function excludeFromMaxTransaction(ad ...
  • - function updateSwapEnabled(bool enabl ...
  • - function updateBuyFees(uint256 _marke ...
  • - function updateSellFees(uint256 _mark ...
  • - function excludeFromFees(address acco ...
  • - function setAutomatedMarketMakerPair( ...
  • - function _setAutomatedMarketMakerPair ...
  • - function updateMarketingWallet(addres ...
  • - function updateDevWallet(address newW ...
  • - function isExcludedFromFees(address a ...
  • - function manage_blacklist(address _ad ...
  • - function _transfer(
  • - function swapTokensForEth(uint256 tok ...
  • - function addLiquidity(uint256 tokenAm ...
  • - function swapBack()
  • Similar
  • Sol2Uml
  • Submit Audit
  • Compare
/** *Submitted for verification at Etherscan.io on 2024-06-10*//**$MRGA- MAKE RUSSIA GREAT AGAINTG: https://t.me/mrgaonethWeb: http://www.mrga.clubTwitter: https://x.com/MRGAonETH*///SPDX-License-Identifier: MIT pragma solidity = 0.8.17;abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; }}interface IUniswapV2Pair { function factory() external view returns (address);}interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair);}interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function 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);}interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8);}contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) {return _name;} function symbol() public view virtual override returns (string memory) {return _symbol;} function decimals() public view virtual override returns (uint8) {return 18;} function totalSupply() public view virtual override returns (uint256) {return _totalSupply;} function balanceOf(address account) public view virtual override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {}}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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }}contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) {return _owner;} modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } 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 SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); }}library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; }}interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity);}interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external;}contract MRGA is ERC20, Ownable { IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet = 0x69A174a2963EbF4339b62A01AaE939aA7D41eAE9; address public devWallet = 0x69A174a2963EbF4339b62A01AaE939aA7D41eAE9; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch mapping (address => bool) public isBlacklisted; bool public transferDelayEnabled = false; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event devWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("MAKE RUSSIA GREAT AGAIN", "MRGA") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 20; uint256 _buyLiquidityFee = 0; uint256 _buyDevFee = 0; uint256 _sellMarketingFee = 30; uint256 _sellLiquidityFee = 0; uint256 _sellDevFee = 0; uint256 totalSupply = 10000000000 * 1e18; maxTransactionAmount = totalSupply * 15 / 1000; // 1.5% maxTransactionAmountTxn maxWallet = totalSupply * 15 / 1000; // 1.5% maxWallet swapTokensAtAmount = totalSupply * 150 / 10000; // 1.5% swap wallet buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; marketingWallet = 0x69A174a2963EbF4339b62A01AaE939aA7D41eAE9; devWallet = 0x69A174a2963EbF4339b62A01AaE939aA7D41eAE9; // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); } receive() external payable { } // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool){ limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool){ transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 15 / 1000, "Swap amount cannot be higher than 1.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; require(buyTotalFees <= 51, "Must keep fees at 51% or less"); } function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; require(sellTotalFees <= 51, "Must keep fees at 51% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function updateDevWallet(address newWallet) external onlyOwner { emit devWalletUpdated(newWallet, devWallet); devWallet = newWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function manage_blacklist(address _address, bool status) external onlyOwner { require(_address != address(0),"Address should not be 0"); isBlacklisted[_address] = status; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!isBlacklisted[from] && !isBlacklisted[to],"Blacklisted"); if(amount == 0) { super._transfer(from, to, 0); return; } if(limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ){ if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]){ require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount * sellTotalFees/100; tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForDev += fees * sellDevFee / sellTotalFees; tokensForMarketing += fees * sellMarketingFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees/100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForDev += fees * buyDevFee / buyTotalFees; tokensForMarketing += fees * buyMarketingFee / buyTotalFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance - liquidityTokens; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForMarketing = ethBalance * tokensForMarketing/totalTokensToSwap; uint256 ethForDev = ethBalance * tokensForDev/totalTokensToSwap; uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; (success,) = address(devWallet).call{value: ethForDev}(""); if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity); } (success,) = address(marketingWallet).call{value: address(this).balance}(""); } }

Contract Security Audit

  • No Contract Security Audit Submitted- Submit Audit Here

Contract ABI

  • JSON Format
  • RAW/Text Format
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Contract Creation Code

Decompile Bytecode Switch to Opcodes View

60c0604052600680547369a174a2963ebf4339b62a01aae939aa7d41eae96001600160a01b03199182168117909255600780549091169091179055600b805462ffffff19166001179055600e805460ff191690553480156200006057600080fd5b506040518060400160405280601781526020017f4d414b452052555353494120475245415420414741494e000000000000000000815250604051806040016040528060048152602001634d52474160e01b8152508160039081620000c59190620007f9565b506004620000d48282620007f9565b5050506000620000e96200046c60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6200015981600162000470565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ca9190620008c5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e9190620008c5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b29190620008c5565b6001600160a01b031660a0819052620002cd90600162000470565b60a051620002dd906001620004ea565b6014600080601e81806b204fce5e3e250261100000006103e86200030382600f62000906565b6200030f919062000920565b6008556103e86200032282600f62000906565b6200032e919062000920565b600a556127106200034182609662000906565b6200034d919062000920565b600955601087905560118690556012859055846200036c878962000943565b62000378919062000943565b600f556014849055601583905560168290558162000397848662000943565b620003a3919062000943565b601355600680547369a174a2963ebf4339b62a01aae939aa7d41eae96001600160a01b03199182168117909255600780549091169091179055620003fb620003f36005546001600160a01b031690565b60016200053e565b620004083060016200053e565b6200041761dead60016200053e565b620004366200042e6005546001600160a01b031690565b600162000470565b6200044330600162000470565b6200045261dead600162000470565b6200045e3382620005e8565b505050505050505062000959565b3390565b6005546001600160a01b03163314620004bf5760405162461bcd60e51b815260206004820181905260248201526000805160206200358b83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005895760405162461bcd60e51b815260206004820181905260248201526000805160206200358b8339815191526044820152606401620004b6565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006405760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004b6565b6200065c81600254620006e960201b6200165a1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200068f9183906200165a620006e9821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b600080620006f8838562000943565b9050838110156200074c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004b6565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200078057607f821691505b602082108103620007a157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006e457600081815260208120601f850160051c81016020861015620007d05750805b601f850160051c820191505b81811015620007f157828155600101620007dc565b505050505050565b81516001600160401b0381111562000815576200081562000755565b6200082d816200082684546200076b565b84620007a7565b602080601f8311600181146200086557600084156200084c5750858301515b600019600386901b1c1916600185901b178555620007f1565b600085815260208120601f198616915b82811015620008965788860151825594840194600190910190840162000875565b5085821015620008b55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008d857600080fd5b81516001600160a01b03811681146200074c57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200074f576200074f620008f0565b6000826200093e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200074f576200074f620008f0565b60805160a051612bd4620009b760003960008181610563015281816110480152611a35015260008181610418015281816119f7015281816124d50152818161258e015281816125ca0152818161264401526126a10152612bd46000f3fe60806040526004361061036f5760003560e01c80638ea5220f116101c6578063c17b5b8c116100f7578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b14610a00578063f637434214610a20578063f8b45b0514610a36578063fe575a8714610a4c57600080fd5b8063e2f45605146109bf578063e884f260146109d5578063f11a24d3146109ea57600080fd5b8063c8c8ebe4116100d1578063c8c8ebe41461092d578063d257b34f14610943578063d85ba06314610963578063dd62ed3e1461097957600080fd5b8063c17b5b8c146108d3578063c18bc195146108f3578063c876d0b91461091357600080fd5b8063a0d82dc511610164578063aacebbe31161013e578063aacebbe314610844578063b62496f514610864578063bbc0c74214610894578063c0246668146108b357600080fd5b8063a0d82dc5146107ee578063a457c2d714610804578063a9059cbb1461082457600080fd5b806395d89b41116101a057806395d89b411461078d5780639a7a23d6146107a25780639c3b4fdc146107c25780639fccce32146107d857600080fd5b80638ea5220f146107375780639213691314610757578063924de9b71461076d57600080fd5b80634a62bb65116102a05780637571336a1161023e5780637bce5a04116102185780637bce5a04146106ce5780638095d564146106e45780638a8c523c146107045780638da5cb5b1461071957600080fd5b80637571336a1461066e57806375f0a8741461068e5780637804389f146106ae57600080fd5b80636ddd17131161027a5780636ddd1713146105ee57806370a082311461060e578063715018a614610644578063751039fc1461065957600080fd5b80634a62bb65146105855780634fbee1931461059f5780636a486a8e146105d857600080fd5b80631f3fed8f1161030d57806327c8f835116102e757806327c8f835146104ff578063313ce56714610515578063395093511461053157806349bd5a5e1461055157600080fd5b80631f3fed8f146104a9578063203e727e146104bf57806323b872dd146104df57600080fd5b80631694505e116103495780631694505e1461040657806318160ddd146104525780631816467f146104715780631a8145bb1461049357600080fd5b806306fdde031461037b578063095ea7b3146103a657806310d5de53146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a7c565b60405161039d919061271f565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612785565b610b0e565b604051901515815260200161039d565b3480156103e257600080fd5b506103c66103f13660046127b1565b601b6020526000908152604090205460ff1681565b34801561041257600080fd5b5061043a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161039d565b34801561045e57600080fd5b506002545b60405190815260200161039d565b34801561047d57600080fd5b5061049161048c3660046127b1565b610b25565b005b34801561049f57600080fd5b5061046360185481565b3480156104b557600080fd5b5061046360175481565b3480156104cb57600080fd5b506104916104da3660046127ce565b610bb5565b3480156104eb57600080fd5b506103c66104fa3660046127e7565b610c92565b34801561050b57600080fd5b5061043a61dead81565b34801561052157600080fd5b506040516012815260200161039d565b34801561053d57600080fd5b506103c661054c366004612785565b610cfb565b34801561055d57600080fd5b5061043a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561059157600080fd5b50600b546103c69060ff1681565b3480156105ab57600080fd5b506103c66105ba3660046127b1565b6001600160a01b03166000908152601a602052604090205460ff1690565b3480156105e457600080fd5b5061046360135481565b3480156105fa57600080fd5b50600b546103c69062010000900460ff1681565b34801561061a57600080fd5b506104636106293660046127b1565b6001600160a01b031660009081526020819052604090205490565b34801561065057600080fd5b50610491610d31565b34801561066557600080fd5b506103c6610da5565b34801561067a57600080fd5b50610491610689366004612838565b610de2565b34801561069a57600080fd5b5060065461043a906001600160a01b031681565b3480156106ba57600080fd5b506104916106c9366004612838565b610e37565b3480156106da57600080fd5b5061046360105481565b3480156106f057600080fd5b506104916106ff36600461286d565b610ee2565b34801561071057600080fd5b50610491610f8a565b34801561072557600080fd5b506005546001600160a01b031661043a565b34801561074357600080fd5b5060075461043a906001600160a01b031681565b34801561076357600080fd5b5061046360145481565b34801561077957600080fd5b50610491610788366004612899565b610fc7565b34801561079957600080fd5b5061039061100d565b3480156107ae57600080fd5b506104916107bd366004612838565b61101c565b3480156107ce57600080fd5b5061046360125481565b3480156107e457600080fd5b5061046360195481565b3480156107fa57600080fd5b5061046360165481565b34801561081057600080fd5b506103c661081f366004612785565b6110fb565b34801561083057600080fd5b506103c661083f366004612785565b61114a565b34801561085057600080fd5b5061049161085f3660046127b1565b611157565b34801561087057600080fd5b506103c661087f3660046127b1565b601c6020526000908152604090205460ff1681565b3480156108a057600080fd5b50600b546103c690610100900460ff1681565b3480156108bf57600080fd5b506104916108ce366004612838565b6111de565b3480156108df57600080fd5b506104916108ee36600461286d565b611267565b3480156108ff57600080fd5b5061049161090e3660046127ce565b61130a565b34801561091f57600080fd5b50600e546103c69060ff1681565b34801561093957600080fd5b5061046360085481565b34801561094f57600080fd5b506103c661095e3660046127ce565b6113db565b34801561096f57600080fd5b50610463600f5481565b34801561098557600080fd5b506104636109943660046128b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109cb57600080fd5b5061046360095481565b3480156109e157600080fd5b506103c6611532565b3480156109f657600080fd5b5061046360115481565b348015610a0c57600080fd5b50610491610a1b3660046127b1565b61156f565b348015610a2c57600080fd5b5061046360155481565b348015610a4257600080fd5b50610463600a5481565b348015610a5857600080fd5b506103c6610a673660046127b1565b600d6020526000908152604090205460ff1681565b606060038054610a8b906128ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab7906128ed565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b6000610b1b3384846116c0565b5060015b92915050565b6005546001600160a01b03163314610b585760405162461bcd60e51b8152600401610b4f90612927565b60405180910390fd5b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74390600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610b4f90612927565b670de0b6b3a76400006103e8610bf460025490565b610bff906001612972565b610c099190612989565b610c139190612989565b811015610c7a5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610b4f565b610c8c81670de0b6b3a7640000612972565b60085550565b6000610c9f8484846117e5565b610cf18433610cec85604051806060016040528060288152602001612b52602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906120ad565b6116c0565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b1b918590610cec908661165a565b6005546001600160a01b03163314610d5b5760405162461bcd60e51b8152600401610b4f90612927565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610dd25760405162461bcd60e51b8152600401610b4f90612927565b50600b805460ff19169055600190565b6005546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e615760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b038216610eb75760405162461bcd60e51b815260206004820152601760248201527f416464726573732073686f756c64206e6f7420626520300000000000000000006044820152606401610b4f565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f0c5760405162461bcd60e51b8152600401610b4f90612927565b60108390556011829055601281905580610f2683856129ab565b610f3091906129ab565b600f81905560331015610f855760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353125206f72206c6573730000006044820152606401610b4f565b505050565b6005546001600160a01b03163314610fb45760405162461bcd60e51b8152600401610b4f90612927565b600b805462ffff00191662010100179055565b6005546001600160a01b03163314610ff15760405162461bcd60e51b8152600401610b4f90612927565b600b8054911515620100000262ff000019909216919091179055565b606060048054610a8b906128ed565b6005546001600160a01b031633146110465760405162461bcd60e51b8152600401610b4f90612927565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110ed5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610b4f565b6110f782826120e7565b5050565b6000610b1b3384610cec85604051806060016040528060258152602001612b7a602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906120ad565b6000610b1b3384846117e5565b6005546001600160a01b031633146111815760405162461bcd60e51b8152600401610b4f90612927565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112085760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112915760405162461bcd60e51b8152600401610b4f90612927565b601483905560158290556016819055806112ab83856129ab565b6112b591906129ab565b601381905560331015610f855760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353125206f72206c6573730000006044820152606401610b4f565b6005546001600160a01b031633146113345760405162461bcd60e51b8152600401610b4f90612927565b670de0b6b3a76400006103e861134960025490565b611354906005612972565b61135e9190612989565b6113689190612989565b8110156113c35760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610b4f565b6113d581670de0b6b3a7640000612972565b600a5550565b6005546000906001600160a01b031633146114085760405162461bcd60e51b8152600401610b4f90612927565b620186a061141560025490565b611420906001612972565b61142a9190612989565b8210156114975760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610b4f565b6103e86114a360025490565b6114ae90600f612972565b6114b89190612989565b8211156115245760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018971a92903a37ba30b61039bab838363c9760611b6064820152608401610b4f565b50600981905560015b919050565b6005546000906001600160a01b0316331461155f5760405162461bcd60e51b8152600401610b4f90612927565b50600e805460ff19169055600190565b6005546001600160a01b031633146115995760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b0381166115fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061166783856129ab565b9050838110156116b95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b4f565b9392505050565b6001600160a01b0383166117225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4f565b6001600160a01b0382166117835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661180b5760405162461bcd60e51b8152600401610b4f906129be565b6001600160a01b0382166118315760405162461bcd60e51b8152600401610b4f90612a03565b6001600160a01b0383166000908152600d602052604090205460ff1615801561187357506001600160a01b0382166000908152600d602052604090205460ff16155b6118ad5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b4f565b806000036118c157610f858383600061213b565b600b5460ff1615611d7e576005546001600160a01b038481169116148015906118f857506005546001600160a01b03838116911614155b801561190c57506001600160a01b03821615155b801561192357506001600160a01b03821661dead14155b80156119395750600554600160a01b900460ff16155b15611d7e57600b54610100900460ff166119d1576001600160a01b0383166000908152601a602052604090205460ff168061198c57506001600160a01b0382166000908152601a602052604090205460ff165b6119d15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b4f565b600e5460ff1615611b18576005546001600160a01b03838116911614801590611a2c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b8015611a6a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15611b1857326000908152600c60205260409020544311611b055760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610b4f565b326000908152600c602052604090204390555b6001600160a01b0383166000908152601c602052604090205460ff168015611b5957506001600160a01b0382166000908152601b602052604090205460ff16155b15611c3d57600854811115611bce5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610b4f565b600a546001600160a01b038316600090815260208190526040902054611bf490836129ab565b1115611c385760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b4f565b611d7e565b6001600160a01b0382166000908152601c602052604090205460ff168015611c7e57506001600160a01b0383166000908152601b602052604090205460ff16155b15611cf457600854811115611c385760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610b4f565b6001600160a01b0382166000908152601b602052604090205460ff16611d7e57600a546001600160a01b038316600090815260208190526040902054611d3a90836129ab565b1115611d7e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b4f565b3060009081526020819052604090205460095481108015908190611daa5750600b5462010000900460ff165b8015611dc05750600554600160a01b900460ff16155b8015611de557506001600160a01b0385166000908152601c602052604090205460ff16155b8015611e0a57506001600160a01b0385166000908152601a602052604090205460ff16155b8015611e2f57506001600160a01b0384166000908152601a602052604090205460ff16155b15611e5d576005805460ff60a01b1916600160a01b179055611e4f612244565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152601a602052604090205460ff600160a01b909204821615911680611eab57506001600160a01b0385166000908152601a602052604090205460ff165b15611eb4575060005b60008115612099576001600160a01b0386166000908152601c602052604090205460ff168015611ee657506000601354115b15611f9e57606460135486611efb9190612972565b611f059190612989565b905060135460155482611f189190612972565b611f229190612989565b60186000828254611f3391906129ab565b9091555050601354601654611f489083612972565b611f529190612989565b60196000828254611f6391906129ab565b9091555050601354601454611f789083612972565b611f829190612989565b60176000828254611f9391906129ab565b9091555061207b9050565b6001600160a01b0387166000908152601c602052604090205460ff168015611fc857506000600f54115b1561207b576064600f5486611fdd9190612972565b611fe79190612989565b9050600f5460115482611ffa9190612972565b6120049190612989565b6018600082825461201591906129ab565b9091555050600f5460125461202a9083612972565b6120349190612989565b6019600082825461204591906129ab565b9091555050600f5460105461205a9083612972565b6120649190612989565b6017600082825461207591906129ab565b90915550505b801561208c5761208c87308361213b565b6120968186612a46565b94505b6120a487878761213b565b50505050505050565b600081848411156120d15760405162461bcd60e51b8152600401610b4f919061271f565b5060006120de8486612a46565b95945050505050565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166121615760405162461bcd60e51b8152600401610b4f906129be565b6001600160a01b0382166121875760405162461bcd60e51b8152600401610b4f90612a03565b6121c481604051806060016040528060268152602001612b2c602691396001600160a01b03861660009081526020819052604090205491906120ad565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546121f3908261165a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016117d8565b306000908152602081905260408120549050600060195460175460185461226b91906129ab565b61227591906129ab565b90506000821580612284575081155b1561228e57505050565b60095461229c906014612972565b8311156122b4576009546122b1906014612972565b92505b6000600283601854866122c79190612972565b6122d19190612989565b6122db9190612989565b905060006122e98286612a46565b9050476122f58261247e565b60006123018247612a46565b9050600086601754836123149190612972565b61231e9190612989565b9050600087601954846123319190612972565b61233b9190612989565b905060008161234a8486612a46565b6123549190612a46565b60006018819055601781905560198190556007546040519293506001600160a01b031691849181818185875af1925050503d80600081146123b1576040519150601f19603f3d011682016040523d82523d6000602084013e6123b6565b606091505b509098505086158015906123ca5750600081115b1561241d576123d9878261263e565b601854604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d806000811461246a576040519150601f19603f3d011682016040523d82523d6000602084013e61246f565b606091505b50505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124b3576124b3612a59565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612a6f565b8160018151811061256857612568612a59565b60200260200101906001600160a01b031690816001600160a01b0316815250506125b3307f0000000000000000000000000000000000000000000000000000000000000000846116c0565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612608908590600090869030904290600401612a8c565b600060405180830381600087803b15801561262257600080fd5b505af1158015612636573d6000803e3d6000fd5b505050505050565b612669307f0000000000000000000000000000000000000000000000000000000000000000846116c0565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156126f3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127189190612afd565b5050505050565b600060208083528351808285015260005b8181101561274c57858101830151858201604001528201612730565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461278257600080fd5b50565b6000806040838503121561279857600080fd5b82356127a38161276d565b946020939093013593505050565b6000602082840312156127c357600080fd5b81356116b98161276d565b6000602082840312156127e057600080fd5b5035919050565b6000806000606084860312156127fc57600080fd5b83356128078161276d565b925060208401356128178161276d565b929592945050506040919091013590565b8035801515811461152d57600080fd5b6000806040838503121561284b57600080fd5b82356128568161276d565b915061286460208401612828565b90509250929050565b60008060006060848603121561288257600080fd5b505081359360208301359350604090920135919050565b6000602082840312156128ab57600080fd5b6116b982612828565b600080604083850312156128c757600080fd5b82356128d28161276d565b915060208301356128e28161276d565b809150509250929050565b600181811c9082168061290157607f821691505b60208210810361292157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b1f57610b1f61295c565b6000826129a657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b1f57610b1f61295c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610b1f57610b1f61295c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a8157600080fd5b81516116b98161276d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612adc5784516001600160a01b031683529383019391830191600101612ab7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b1257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202a7adc77317a91aede6b10b46b516243eaba657d053156f4bb99baf68062245764736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572


Deployed Bytecode

0x60806040526004361061036f5760003560e01c80638ea5220f116101c6578063c17b5b8c116100f7578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b14610a00578063f637434214610a20578063f8b45b0514610a36578063fe575a8714610a4c57600080fd5b8063e2f45605146109bf578063e884f260146109d5578063f11a24d3146109ea57600080fd5b8063c8c8ebe4116100d1578063c8c8ebe41461092d578063d257b34f14610943578063d85ba06314610963578063dd62ed3e1461097957600080fd5b8063c17b5b8c146108d3578063c18bc195146108f3578063c876d0b91461091357600080fd5b8063a0d82dc511610164578063aacebbe31161013e578063aacebbe314610844578063b62496f514610864578063bbc0c74214610894578063c0246668146108b357600080fd5b8063a0d82dc5146107ee578063a457c2d714610804578063a9059cbb1461082457600080fd5b806395d89b41116101a057806395d89b411461078d5780639a7a23d6146107a25780639c3b4fdc146107c25780639fccce32146107d857600080fd5b80638ea5220f146107375780639213691314610757578063924de9b71461076d57600080fd5b80634a62bb65116102a05780637571336a1161023e5780637bce5a04116102185780637bce5a04146106ce5780638095d564146106e45780638a8c523c146107045780638da5cb5b1461071957600080fd5b80637571336a1461066e57806375f0a8741461068e5780637804389f146106ae57600080fd5b80636ddd17131161027a5780636ddd1713146105ee57806370a082311461060e578063715018a614610644578063751039fc1461065957600080fd5b80634a62bb65146105855780634fbee1931461059f5780636a486a8e146105d857600080fd5b80631f3fed8f1161030d57806327c8f835116102e757806327c8f835146104ff578063313ce56714610515578063395093511461053157806349bd5a5e1461055157600080fd5b80631f3fed8f146104a9578063203e727e146104bf57806323b872dd146104df57600080fd5b80631694505e116103495780631694505e1461040657806318160ddd146104525780631816467f146104715780631a8145bb1461049357600080fd5b806306fdde031461037b578063095ea7b3146103a657806310d5de53146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a7c565b60405161039d919061271f565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612785565b610b0e565b604051901515815260200161039d565b3480156103e257600080fd5b506103c66103f13660046127b1565b601b6020526000908152604090205460ff1681565b34801561041257600080fd5b5061043a7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161039d565b34801561045e57600080fd5b506002545b60405190815260200161039d565b34801561047d57600080fd5b5061049161048c3660046127b1565b610b25565b005b34801561049f57600080fd5b5061046360185481565b3480156104b557600080fd5b5061046360175481565b3480156104cb57600080fd5b506104916104da3660046127ce565b610bb5565b3480156104eb57600080fd5b506103c66104fa3660046127e7565b610c92565b34801561050b57600080fd5b5061043a61dead81565b34801561052157600080fd5b506040516012815260200161039d565b34801561053d57600080fd5b506103c661054c366004612785565b610cfb565b34801561055d57600080fd5b5061043a7f000000000000000000000000700573c9e7f8e164977f1c3d26924040853f01b181565b34801561059157600080fd5b50600b546103c69060ff1681565b3480156105ab57600080fd5b506103c66105ba3660046127b1565b6001600160a01b03166000908152601a602052604090205460ff1690565b3480156105e457600080fd5b5061046360135481565b3480156105fa57600080fd5b50600b546103c69062010000900460ff1681565b34801561061a57600080fd5b506104636106293660046127b1565b6001600160a01b031660009081526020819052604090205490565b34801561065057600080fd5b50610491610d31565b34801561066557600080fd5b506103c6610da5565b34801561067a57600080fd5b50610491610689366004612838565b610de2565b34801561069a57600080fd5b5060065461043a906001600160a01b031681565b3480156106ba57600080fd5b506104916106c9366004612838565b610e37565b3480156106da57600080fd5b5061046360105481565b3480156106f057600080fd5b506104916106ff36600461286d565b610ee2565b34801561071057600080fd5b50610491610f8a565b34801561072557600080fd5b506005546001600160a01b031661043a565b34801561074357600080fd5b5060075461043a906001600160a01b031681565b34801561076357600080fd5b5061046360145481565b34801561077957600080fd5b50610491610788366004612899565b610fc7565b34801561079957600080fd5b5061039061100d565b3480156107ae57600080fd5b506104916107bd366004612838565b61101c565b3480156107ce57600080fd5b5061046360125481565b3480156107e457600080fd5b5061046360195481565b3480156107fa57600080fd5b5061046360165481565b34801561081057600080fd5b506103c661081f366004612785565b6110fb565b34801561083057600080fd5b506103c661083f366004612785565b61114a565b34801561085057600080fd5b5061049161085f3660046127b1565b611157565b34801561087057600080fd5b506103c661087f3660046127b1565b601c6020526000908152604090205460ff1681565b3480156108a057600080fd5b50600b546103c690610100900460ff1681565b3480156108bf57600080fd5b506104916108ce366004612838565b6111de565b3480156108df57600080fd5b506104916108ee36600461286d565b611267565b3480156108ff57600080fd5b5061049161090e3660046127ce565b61130a565b34801561091f57600080fd5b50600e546103c69060ff1681565b34801561093957600080fd5b5061046360085481565b34801561094f57600080fd5b506103c661095e3660046127ce565b6113db565b34801561096f57600080fd5b50610463600f5481565b34801561098557600080fd5b506104636109943660046128b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109cb57600080fd5b5061046360095481565b3480156109e157600080fd5b506103c6611532565b3480156109f657600080fd5b5061046360115481565b348015610a0c57600080fd5b50610491610a1b3660046127b1565b61156f565b348015610a2c57600080fd5b5061046360155481565b348015610a4257600080fd5b50610463600a5481565b348015610a5857600080fd5b506103c6610a673660046127b1565b600d6020526000908152604090205460ff1681565b606060038054610a8b906128ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab7906128ed565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b6000610b1b3384846116c0565b5060015b92915050565b6005546001600160a01b03163314610b585760405162461bcd60e51b8152600401610b4f90612927565b60405180910390fd5b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74390600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610b4f90612927565b670de0b6b3a76400006103e8610bf460025490565b610bff906001612972565b610c099190612989565b610c139190612989565b811015610c7a5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610b4f565b610c8c81670de0b6b3a7640000612972565b60085550565b6000610c9f8484846117e5565b610cf18433610cec85604051806060016040528060288152602001612b52602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906120ad565b6116c0565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b1b918590610cec908661165a565b6005546001600160a01b03163314610d5b5760405162461bcd60e51b8152600401610b4f90612927565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610dd25760405162461bcd60e51b8152600401610b4f90612927565b50600b805460ff19169055600190565b6005546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e615760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b038216610eb75760405162461bcd60e51b815260206004820152601760248201527f416464726573732073686f756c64206e6f7420626520300000000000000000006044820152606401610b4f565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f0c5760405162461bcd60e51b8152600401610b4f90612927565b60108390556011829055601281905580610f2683856129ab565b610f3091906129ab565b600f81905560331015610f855760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353125206f72206c6573730000006044820152606401610b4f565b505050565b6005546001600160a01b03163314610fb45760405162461bcd60e51b8152600401610b4f90612927565b600b805462ffff00191662010100179055565b6005546001600160a01b03163314610ff15760405162461bcd60e51b8152600401610b4f90612927565b600b8054911515620100000262ff000019909216919091179055565b606060048054610a8b906128ed565b6005546001600160a01b031633146110465760405162461bcd60e51b8152600401610b4f90612927565b7f000000000000000000000000700573c9e7f8e164977f1c3d26924040853f01b16001600160a01b0316826001600160a01b0316036110ed5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610b4f565b6110f782826120e7565b5050565b6000610b1b3384610cec85604051806060016040528060258152602001612b7a602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906120ad565b6000610b1b3384846117e5565b6005546001600160a01b031633146111815760405162461bcd60e51b8152600401610b4f90612927565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112085760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112915760405162461bcd60e51b8152600401610b4f90612927565b601483905560158290556016819055806112ab83856129ab565b6112b591906129ab565b601381905560331015610f855760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353125206f72206c6573730000006044820152606401610b4f565b6005546001600160a01b031633146113345760405162461bcd60e51b8152600401610b4f90612927565b670de0b6b3a76400006103e861134960025490565b611354906005612972565b61135e9190612989565b6113689190612989565b8110156113c35760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610b4f565b6113d581670de0b6b3a7640000612972565b600a5550565b6005546000906001600160a01b031633146114085760405162461bcd60e51b8152600401610b4f90612927565b620186a061141560025490565b611420906001612972565b61142a9190612989565b8210156114975760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610b4f565b6103e86114a360025490565b6114ae90600f612972565b6114b89190612989565b8211156115245760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018971a92903a37ba30b61039bab838363c9760611b6064820152608401610b4f565b50600981905560015b919050565b6005546000906001600160a01b0316331461155f5760405162461bcd60e51b8152600401610b4f90612927565b50600e805460ff19169055600190565b6005546001600160a01b031633146115995760405162461bcd60e51b8152600401610b4f90612927565b6001600160a01b0381166115fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061166783856129ab565b9050838110156116b95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b4f565b9392505050565b6001600160a01b0383166117225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4f565b6001600160a01b0382166117835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661180b5760405162461bcd60e51b8152600401610b4f906129be565b6001600160a01b0382166118315760405162461bcd60e51b8152600401610b4f90612a03565b6001600160a01b0383166000908152600d602052604090205460ff1615801561187357506001600160a01b0382166000908152600d602052604090205460ff16155b6118ad5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b4f565b806000036118c157610f858383600061213b565b600b5460ff1615611d7e576005546001600160a01b038481169116148015906118f857506005546001600160a01b03838116911614155b801561190c57506001600160a01b03821615155b801561192357506001600160a01b03821661dead14155b80156119395750600554600160a01b900460ff16155b15611d7e57600b54610100900460ff166119d1576001600160a01b0383166000908152601a602052604090205460ff168061198c57506001600160a01b0382166000908152601a602052604090205460ff165b6119d15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b4f565b600e5460ff1615611b18576005546001600160a01b03838116911614801590611a2c57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b8015611a6a57507f000000000000000000000000700573c9e7f8e164977f1c3d26924040853f01b16001600160a01b0316826001600160a01b031614155b15611b1857326000908152600c60205260409020544311611b055760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610b4f565b326000908152600c602052604090204390555b6001600160a01b0383166000908152601c602052604090205460ff168015611b5957506001600160a01b0382166000908152601b602052604090205460ff16155b15611c3d57600854811115611bce5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610b4f565b600a546001600160a01b038316600090815260208190526040902054611bf490836129ab565b1115611c385760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b4f565b611d7e565b6001600160a01b0382166000908152601c602052604090205460ff168015611c7e57506001600160a01b0383166000908152601b602052604090205460ff16155b15611cf457600854811115611c385760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610b4f565b6001600160a01b0382166000908152601b602052604090205460ff16611d7e57600a546001600160a01b038316600090815260208190526040902054611d3a90836129ab565b1115611d7e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b4f565b3060009081526020819052604090205460095481108015908190611daa5750600b5462010000900460ff165b8015611dc05750600554600160a01b900460ff16155b8015611de557506001600160a01b0385166000908152601c602052604090205460ff16155b8015611e0a57506001600160a01b0385166000908152601a602052604090205460ff16155b8015611e2f57506001600160a01b0384166000908152601a602052604090205460ff16155b15611e5d576005805460ff60a01b1916600160a01b179055611e4f612244565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152601a602052604090205460ff600160a01b909204821615911680611eab57506001600160a01b0385166000908152601a602052604090205460ff165b15611eb4575060005b60008115612099576001600160a01b0386166000908152601c602052604090205460ff168015611ee657506000601354115b15611f9e57606460135486611efb9190612972565b611f059190612989565b905060135460155482611f189190612972565b611f229190612989565b60186000828254611f3391906129ab565b9091555050601354601654611f489083612972565b611f529190612989565b60196000828254611f6391906129ab565b9091555050601354601454611f789083612972565b611f829190612989565b60176000828254611f9391906129ab565b9091555061207b9050565b6001600160a01b0387166000908152601c602052604090205460ff168015611fc857506000600f54115b1561207b576064600f5486611fdd9190612972565b611fe79190612989565b9050600f5460115482611ffa9190612972565b6120049190612989565b6018600082825461201591906129ab565b9091555050600f5460125461202a9083612972565b6120349190612989565b6019600082825461204591906129ab565b9091555050600f5460105461205a9083612972565b6120649190612989565b6017600082825461207591906129ab565b90915550505b801561208c5761208c87308361213b565b6120968186612a46565b94505b6120a487878761213b565b50505050505050565b600081848411156120d15760405162461bcd60e51b8152600401610b4f919061271f565b5060006120de8486612a46565b95945050505050565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166121615760405162461bcd60e51b8152600401610b4f906129be565b6001600160a01b0382166121875760405162461bcd60e51b8152600401610b4f90612a03565b6121c481604051806060016040528060268152602001612b2c602691396001600160a01b03861660009081526020819052604090205491906120ad565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546121f3908261165a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016117d8565b306000908152602081905260408120549050600060195460175460185461226b91906129ab565b61227591906129ab565b90506000821580612284575081155b1561228e57505050565b60095461229c906014612972565b8311156122b4576009546122b1906014612972565b92505b6000600283601854866122c79190612972565b6122d19190612989565b6122db9190612989565b905060006122e98286612a46565b9050476122f58261247e565b60006123018247612a46565b9050600086601754836123149190612972565b61231e9190612989565b9050600087601954846123319190612972565b61233b9190612989565b905060008161234a8486612a46565b6123549190612a46565b60006018819055601781905560198190556007546040519293506001600160a01b031691849181818185875af1925050503d80600081146123b1576040519150601f19603f3d011682016040523d82523d6000602084013e6123b6565b606091505b509098505086158015906123ca5750600081115b1561241d576123d9878261263e565b601854604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d806000811461246a576040519150601f19603f3d011682016040523d82523d6000602084013e61246f565b606091505b50505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124b3576124b3612a59565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612a6f565b8160018151811061256857612568612a59565b60200260200101906001600160a01b031690816001600160a01b0316815250506125b3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846116c0565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612608908590600090869030904290600401612a8c565b600060405180830381600087803b15801561262257600080fd5b505af1158015612636573d6000803e3d6000fd5b505050505050565b612669307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846116c0565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156126f3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127189190612afd565b5050505050565b600060208083528351808285015260005b8181101561274c57858101830151858201604001528201612730565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461278257600080fd5b50565b6000806040838503121561279857600080fd5b82356127a38161276d565b946020939093013593505050565b6000602082840312156127c357600080fd5b81356116b98161276d565b6000602082840312156127e057600080fd5b5035919050565b6000806000606084860312156127fc57600080fd5b83356128078161276d565b925060208401356128178161276d565b929592945050506040919091013590565b8035801515811461152d57600080fd5b6000806040838503121561284b57600080fd5b82356128568161276d565b915061286460208401612828565b90509250929050565b60008060006060848603121561288257600080fd5b505081359360208301359350604090920135919050565b6000602082840312156128ab57600080fd5b6116b982612828565b600080604083850312156128c757600080fd5b82356128d28161276d565b915060208301356128e28161276d565b809150509250929050565b600181811c9082168061290157607f821691505b60208210810361292157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b1f57610b1f61295c565b6000826129a657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b1f57610b1f61295c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610b1f57610b1f61295c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a8157600080fd5b81516116b98161276d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612adc5784516001600160a01b031683529383019391830191600101612ab7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b1257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202a7adc77317a91aede6b10b46b516243eaba657d053156f4bb99baf68062245764736f6c63430008110033

Deployed Bytecode Sourcemap

10379:15383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2236:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3056:169;;;;;;;;;;-1:-1:-1;3056:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3056:169:0;1023:187:1;11854:64:0;;;;;;;;;;-1:-1:-1;11854:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10420:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;10420:51:0;1467:230:1;2503:92:0;;;;;;;;;;-1:-1:-1;2581:12:0;;2503:92;;;1848:25:1;;;1836:2;1821:18;2503:92:0;1702:177:1;18449:157:0;;;;;;;;;;-1:-1:-1;18449:157:0;;;;;:::i;:::-;;:::i;:::-;;11633:33;;;;;;;;;;;;;;;;11593;;;;;;;;;;;;;;;;15998:234;;;;;;;;;;-1:-1:-1;15998:234:0;;;;;:::i;:::-;;:::i;3231:355::-;;;;;;;;;;-1:-1:-1;3231:355:0;;;;;:::i;:::-;;:::i;10523:53::-;;;;;;;;;;;;10569:6;10523:53;;2420:77;;;;;;;;;;-1:-1:-1;2420:77:0;;2493:2;2880:36:1;;2868:2;2853:18;2420:77:0;2738:184:1;3592:218:0;;;;;;;;;;-1:-1:-1;3592:218:0;;;;;:::i;:::-;;:::i;10478:38::-;;;;;;;;;;;;;;;10894:33;;;;;;;;;;-1:-1:-1;10894:33:0;;;;;;;;18620:125;;;;;;;;;;-1:-1:-1;18620:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;18709:28:0;18685:4;18709:28;;;:19;:28;;;;;;;;;18620:125;11444:28;;;;;;;;;;;;;;;;10974:31;;;;;;;;;;-1:-1:-1;10974:31:0;;;;;;;;;;;2601:111;;;;;;;;;;-1:-1:-1;2601:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;2692:18:0;2675:7;2692:18;;;;;;;;;;;;2601:111;7931:148;;;;;;;;;;;;;:::i;15210:120::-;;;;;;;;;;;;;:::i;16467:144::-;;;;;;;;;;-1:-1:-1;16467:144:0;;;;;:::i;:::-;;:::i;10615:75::-;;;;;;;;;;-1:-1:-1;10615:75:0;;;;-1:-1:-1;;;;;10615:75:0;;;18753:195;;;;;;;;;;-1:-1:-1;18753:195:0;;;;;:::i;:::-;;:::i;11333:30::-;;;;;;;;;;;;;;;;16824:369;;;;;;;;;;-1:-1:-1;16824:369:0;;;;;:::i;:::-;;:::i;15042:112::-;;;;;;;;;;;;;:::i;7737:63::-;;;;;;;;;;-1:-1:-1;7792:6:0;;-1:-1:-1;;;;;7792:6:0;7737:63;;10697:69;;;;;;;;;;-1:-1:-1;10697:69:0;;;;-1:-1:-1;;;;;10697:69:0;;;11479:31;;;;;;;;;;;;;;;;16711:101;;;;;;;;;;-1:-1:-1;16711:101:0;;;;;:::i;:::-;;:::i;2326:88::-;;;;;;;;;;;;;:::i;17781:244::-;;;;;;;;;;-1:-1:-1;17781:244:0;;;;;:::i;:::-;;:::i;11407:24::-;;;;;;;;;;;;;;;;11673:27;;;;;;;;;;;;;;;;11555:25;;;;;;;;;;;;;;;;3816:269;;;;;;;;;;-1:-1:-1;3816:269:0;;;;;:::i;:::-;;:::i;2718:175::-;;;;;;;;;;-1:-1:-1;2718:175:0;;;;;:::i;:::-;;:::i;18229:208::-;;;;;;;;;;-1:-1:-1;18229:208:0;;;;;:::i;:::-;;:::i;12076:58::-;;;;;;;;;;-1:-1:-1;12076:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10934:33;;;;;;;;;;-1:-1:-1;10934:33:0;;;;;;;;;;;17591:182;;;;;;;;;;-1:-1:-1;17591:182:0;;;;;:::i;:::-;;:::i;17205:378::-;;;;;;;;;;-1:-1:-1;17205:378:0;;;;;:::i;:::-;;:::i;16240:215::-;;;;;;;;;;-1:-1:-1;16240:215:0;;;;;:::i;:::-;;:::i;11250:40::-;;;;;;;;;;-1:-1:-1;11250:40:0;;;;;;;;10779:35;;;;;;;;;;;;;;;;15604:382;;;;;;;;;;-1:-1:-1;15604:382:0;;;;;:::i;:::-;;:::i;11299:27::-;;;;;;;;;;;;;;;;2899:151;;;;;;;;;;-1:-1:-1;2899:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3015:18:0;;;2988:7;3015:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2899:151;10821:33;;;;;;;;;;;;;;;;15395:134;;;;;;;;;;;;;:::i;11370:30::-;;;;;;;;;;;;;;;;8085:244;;;;;;;;;;-1:-1:-1;8085:244:0;;;;;:::i;:::-;;:::i;11517:31::-;;;;;;;;;;;;;;;;10861:24;;;;;;;;;;;;;;;;11197:46;;;;;;;;;;-1:-1:-1;11197:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2236:84;2290:13;2313:5;2306:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2236:84;:::o;3056:169::-;3139:4;3156:39;389:10;3179:7;3188:6;3156:8;:39::i;:::-;-1:-1:-1;3213:4:0;3056:169;;;;;:::o;18449:157::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;;;;;;;;;18556:9:::1;::::0;18528:38:::1;::::0;-1:-1:-1;;;;;18556:9:0;;::::1;::::0;18528:38;::::1;::::0;::::1;::::0;18556:9:::1;::::0;18528:38:::1;18577:9;:21:::0;;-1:-1:-1;;;;;;18577:21:0::1;-1:-1:-1::0;;;;;18577:21:0;;;::::1;::::0;;;::::1;::::0;;18449:157::o;15998:234::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;16117:4:::1;16111;16091:13;2581:12:::0;;;2503:92;16091:13:::1;:17;::::0;16107:1:::1;16091:17;:::i;:::-;:24;;;;:::i;:::-;16090:31;;;;:::i;:::-;16080:6;:41;;16072:101;;;::::0;-1:-1:-1;;;16072:101:0;;5786:2:1;16072:101:0::1;::::0;::::1;5768:21:1::0;5825:2;5805:18;;;5798:30;5864:34;5844:18;;;5837:62;-1:-1:-1;;;5915:18:1;;;5908:45;5970:19;;16072:101:0::1;5584:411:1::0;16072:101:0::1;16207:17;:6:::0;16217::::1;16207:17;:::i;:::-;16184:20;:40:::0;-1:-1:-1;15998:234:0:o;3231:355::-;3371:4;3388:36;3398:6;3406:9;3417:6;3388:9;:36::i;:::-;3435:121;3444:6;389:10;3466:89;3504:6;3466:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3466:19:0;;;;;;:11;:19;;;;;;;;389:10;3466:33;;;;;;;;;;:37;:89::i;:::-;3435:8;:121::i;:::-;-1:-1:-1;3574:4:0;3231:355;;;;;:::o;3592:218::-;389:10;3680:4;3729:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3729:34:0;;;;;;;;;;3680:4;;3697:83;;3720:7;;3729:50;;3768:10;3729:38;:50::i;7931:148::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;8022:6:::1;::::0;8001:40:::1;::::0;8038:1:::1;::::0;-1:-1:-1;;;;;8022:6:0::1;::::0;8001:40:::1;::::0;8038:1;;8001:40:::1;8052:6;:19:::0;;-1:-1:-1;;;;;;8052:19:0::1;::::0;;7931:148::o;15210:120::-;7846:6;;15262:4;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;15278:14:0::1;:22:::0;;-1:-1:-1;;15278:22:0::1;::::0;;;15210:120;:::o;16467:144::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16557:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16557:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16467:144::o;18753:195::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18848:22:0;::::1;18840:57;;;::::0;-1:-1:-1;;;18840:57:0;;6202:2:1;18840:57:0::1;::::0;::::1;6184:21:1::0;6241:2;6221:18;;;6214:30;6280:25;6260:18;;;6253:53;6323:18;;18840:57:0::1;6000:347:1::0;18840:57:0::1;-1:-1:-1::0;;;;;18908:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:32;;-1:-1:-1;;18908:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18753:195::o;16824:369::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;16940:15:::1;:31:::0;;;16982:15:::1;:31:::0;;;17024:9:::1;:19:::0;;;17036:7;17069:33:::1;17000:13:::0;16958;17069:33:::1;:::i;:::-;:45;;;;:::i;:::-;17054:12;:60:::0;;;17149:2:::1;-1:-1:-1::0;17133:18:0::1;17125:60;;;::::0;-1:-1:-1;;;17125:60:0;;6684:2:1;17125:60:0::1;::::0;::::1;6666:21:1::0;6723:2;6703:18;;;6696:30;6762:31;6742:18;;;6735:59;6811:18;;17125:60:0::1;6482:353:1::0;17125:60:0::1;16824:369:::0;;;:::o;15042:112::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;15097:13:::1;:20:::0;;-1:-1:-1;;15128:18:0;;;;;15042:112::o;16711:101::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;16783:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;16783:21:0;;::::1;::::0;;;::::1;::::0;;16711:101::o;2326:88::-;2382:13;2405:7;2398:14;;;;;:::i;17781:244::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;17888:13:::1;-1:-1:-1::0;;;;;17880:21:0::1;:4;-1:-1:-1::0;;;;;17880:21:0::1;::::0;17872:91:::1;;;::::0;-1:-1:-1;;;17872:91:0;;7042:2:1;17872:91:0::1;::::0;::::1;7024:21:1::0;7081:2;7061:18;;;7054:30;7120:34;7100:18;;;7093:62;7191:27;7171:18;;;7164:55;7236:19;;17872:91:0::1;6840:421:1::0;17872:91:0::1;17976:41;18005:4;18011:5;17976:28;:41::i;:::-;17781:244:::0;;:::o;3816:269::-;3909:4;3926:129;389:10;3949:7;3958:96;3997:15;3958:96;;;;;;;;;;;;;;;;;389:10;3958:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3958:34:0;;;;;;;;;;;;:38;:96::i;2718:175::-;2804:4;2821:42;389:10;2845:9;2856:6;2821:9;:42::i;18229:208::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;18366:15:::1;::::0;18323:59:::1;::::0;-1:-1:-1;;;;;18366:15:0;;::::1;::::0;18323:59;::::1;::::0;::::1;::::0;18366:15:::1;::::0;18323:59:::1;18393:15;:36:::0;;-1:-1:-1;;;;;;18393:36:0::1;-1:-1:-1::0;;;;;18393:36:0;;;::::1;::::0;;;::::1;::::0;;18229:208::o;17591:182::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17676:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17676:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17731:34;;1163:41:1;;;17731:34:0::1;::::0;1136:18:1;17731:34:0::1;;;;;;;17591:182:::0;;:::o;17205:378::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;17322:16:::1;:32:::0;;;17365:16:::1;:32:::0;;;17408:10:::1;:20:::0;;;17421:7;17455:35:::1;17384:13:::0;17341;17455:35:::1;:::i;:::-;:48;;;;:::i;:::-;17439:13;:64:::0;;;17539:2:::1;-1:-1:-1::0;17522:19:0::1;17514:61;;;::::0;-1:-1:-1;;;17514:61:0;;6684:2:1;17514:61:0::1;::::0;::::1;6666:21:1::0;6723:2;6703:18;;;6696:30;6762:31;6742:18;;;6735:59;6811:18;;17514:61:0::1;6482:353:1::0;16240:215:0;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;16362:4:::1;16356;16336:13;2581:12:::0;;;2503:92;16336:13:::1;:17;::::0;16352:1:::1;16336:17;:::i;:::-;:24;;;;:::i;:::-;16335:31;;;;:::i;:::-;16325:6;:41;;16317:90;;;::::0;-1:-1:-1;;;16317:90:0;;7468:2:1;16317:90:0::1;::::0;::::1;7450:21:1::0;7507:2;7487:18;;;7480:30;7546:34;7526:18;;;7519:62;-1:-1:-1;;;7597:18:1;;;7590:34;7641:19;;16317:90:0::1;7266:400:1::0;16317:90:0::1;16430:17;:6:::0;16440::::1;16430:17;:::i;:::-;16418:9;:29:::0;-1:-1:-1;16240:215:0:o;15604:382::-;7846:6;;15685:4;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;15741:6:::1;15721:13;2581:12:::0;;;2503:92;15721:13:::1;:17;::::0;15737:1:::1;15721:17;:::i;:::-;:26;;;;:::i;:::-;15708:9;:39;;15700:105;;;::::0;-1:-1:-1;;;15700:105:0;;7873:2:1;15700:105:0::1;::::0;::::1;7855:21:1::0;7912:2;7892:18;;;7885:30;7951:34;7931:18;;;7924:62;-1:-1:-1;;;8002:18:1;;;7995:51;8063:19;;15700:105:0::1;7671:417:1::0;15700:105:0::1;15857:4;15836:13;2581:12:::0;;;2503:92;15836:13:::1;:18;::::0;15852:2:::1;15836:18;:::i;:::-;:25;;;;:::i;:::-;15823:9;:38;;15815:103;;;::::0;-1:-1:-1;;;15815:103:0;;8295:2:1;15815:103:0::1;::::0;::::1;8277:21:1::0;8334:2;8314:18;;;8307:30;8373:34;8353:18;;;8346:62;-1:-1:-1;;;8424:18:1;;;8417:50;8484:19;;15815:103:0::1;8093:416:1::0;15815:103:0::1;-1:-1:-1::0;15928:18:0::1;:30:::0;;;15975:4:::1;7916:1;15604:382:::0;;;:::o;15395:134::-;7846:6;;15455:4;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;15471:20:0::1;:28:::0;;-1:-1:-1;;15471:28:0::1;::::0;;;15395:134;:::o;8085:244::-;7846:6;;-1:-1:-1;;;;;7846:6:0;389:10;7846:22;7838:67;;;;-1:-1:-1;;;7838:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8174:22:0;::::1;8166:73;;;::::0;-1:-1:-1;;;8166:73:0;;8716:2:1;8166:73:0::1;::::0;::::1;8698:21:1::0;8755:2;8735:18;;;8728:30;8794:34;8774:18;;;8767:62;-1:-1:-1;;;8845:18:1;;;8838:36;8891:19;;8166:73:0::1;8514:402:1::0;8166:73:0::1;8276:6;::::0;8255:38:::1;::::0;-1:-1:-1;;;;;8255:38:0;;::::1;::::0;8276:6:::1;::::0;8255:38:::1;::::0;8276:6:::1;::::0;8255:38:::1;8304:6;:17:::0;;-1:-1:-1;;;;;;8304:17:0::1;-1:-1:-1::0;;;;;8304:17:0;;;::::1;::::0;;;::::1;::::0;;8085:244::o;6006:179::-;6064:7;;6096:5;6100:1;6096;:5;:::i;:::-;6084:17;;6125:1;6120;:6;;6112:46;;;;-1:-1:-1;;;6112:46:0;;9123:2:1;6112:46:0;;;9105:21:1;9162:2;9142:18;;;9135:30;9201:29;9181:18;;;9174:57;9248:18;;6112:46:0;8921:351:1;6112:46:0;6176:1;6006:179;-1:-1:-1;;;6006:179:0:o;5466:378::-;-1:-1:-1;;;;;5602:19:0;;5594:68;;;;-1:-1:-1;;;5594:68:0;;9479:2:1;5594:68:0;;;9461:21:1;9518:2;9498:18;;;9491:30;9557:34;9537:18;;;9530:62;-1:-1:-1;;;9608:18:1;;;9601:34;9652:19;;5594:68:0;9277:400:1;5594:68:0;-1:-1:-1;;;;;5681:21:0;;5673:68;;;;-1:-1:-1;;;5673:68:0;;9884:2:1;5673:68:0;;;9866:21:1;9923:2;9903:18;;;9896:30;9962:34;9942:18;;;9935:62;-1:-1:-1;;;10013:18:1;;;10006:32;10055:19;;5673:68:0;9682:398:1;5673:68:0;-1:-1:-1;;;;;5752:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5804:32;;1848:25:1;;;5804:32:0;;1821:18:1;5804:32:0;;;;;;;;5466:378;;;:::o;18956:4174::-;-1:-1:-1;;;;;19088:18:0;;19080:68;;;;-1:-1:-1;;;19080:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19167:16:0;;19159:64;;;;-1:-1:-1;;;19159:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19243:19:0;;;;;;:13;:19;;;;;;;;19242:20;:42;;;;-1:-1:-1;;;;;;19267:17:0;;;;;;:13;:17;;;;;;;;19266:18;19242:42;19234:65;;;;-1:-1:-1;;;19234:65:0;;11097:2:1;19234:65:0;;;11079:21:1;11136:2;11116:18;;;11109:30;-1:-1:-1;;;11155:18:1;;;11148:41;11206:18;;19234:65:0;10895:335:1;19234:65:0;19324:6;19334:1;19324:11;19321:92;;19352:28;19368:4;19374:2;19378:1;19352:15;:28::i;19321:92::-;19436:14;;;;19433:1841;;;7792:6;;-1:-1:-1;;;;;19488:15:0;;;7792:6;;19488:15;;;;:49;;-1:-1:-1;7792:6:0;;-1:-1:-1;;;;;19524:13:0;;;7792:6;;19524:13;;19488:49;:86;;;;-1:-1:-1;;;;;;19558:16:0;;;;19488:86;:128;;;;-1:-1:-1;;;;;;19595:21:0;;19609:6;19595:21;;19488:128;:158;;;;-1:-1:-1;19638:8:0;;-1:-1:-1;;;19638:8:0;;;;19637:9;19488:158;19466:1797;;;19684:13;;;;;;;19680:148;;-1:-1:-1;;;;;19729:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19758:23:0;;;;;;:19;:23;;;;;;;;19729:52;19721:87;;;;-1:-1:-1;;;19721:87:0;;11437:2:1;19721:87:0;;;11419:21:1;11476:2;11456:18;;;11449:30;-1:-1:-1;;;11495:18:1;;;11488:52;11557:18;;19721:87:0;11235:346:1;19721:87:0;19986:20;;;;19982:423;;;7792:6;;-1:-1:-1;;;;;20034:13:0;;;7792:6;;20034:13;;;;:47;;;20065:15;-1:-1:-1;;;;;20051:30:0;:2;-1:-1:-1;;;;;20051:30:0;;;20034:47;:79;;;;;20099:13;-1:-1:-1;;;;;20085:28:0;:2;-1:-1:-1;;;;;20085:28:0;;;20034:79;20030:356;;;20178:9;20149:39;;;;:28;:39;;;;;;20191:12;-1:-1:-1;20141:140:0;;;;-1:-1:-1;;;20141:140:0;;11788:2:1;20141:140:0;;;11770:21:1;11827:2;11807:18;;;11800:30;11866:34;11846:18;;;11839:62;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:19:1;;;11981:40;12038:19;;20141:140:0;11586:477:1;20141:140:0;20337:9;20308:39;;;;:28;:39;;;;;20350:12;20308:54;;20030:356;-1:-1:-1;;;;;20474:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;20510:35:0;;;;;;:31;:35;;;;;;;;20509:36;20474:71;20470:778;;;20592:20;;20582:6;:30;;20574:96;;;;-1:-1:-1;;;20574:96:0;;12270:2:1;20574:96:0;;;12252:21:1;12309:2;12289:18;;;12282:30;12348:34;12328:18;;;12321:62;-1:-1:-1;;;12399:18:1;;;12392:51;12460:19;;20574:96:0;12068:417:1;20574:96:0;20731:9;;-1:-1:-1;;;;;2692:18:0;;2675:7;2692:18;;;;;;;;;;;20705:22;;:6;:22;:::i;:::-;:35;;20697:67;;;;-1:-1:-1;;;20697:67:0;;12692:2:1;20697:67:0;;;12674:21:1;12731:2;12711:18;;;12704:30;-1:-1:-1;;;12750:18:1;;;12743:49;12809:18;;20697:67:0;12490:343:1;20697:67:0;20470:778;;;-1:-1:-1;;;;;20858:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20892:37:0;;;;;;:31;:37;;;;;;;;20891:38;20858:71;20854:394;;;20976:20;;20966:6;:30;;20958:97;;;;-1:-1:-1;;;20958:97:0;;13040:2:1;20958:97:0;;;13022:21:1;13079:2;13059:18;;;13052:30;13118:34;13098:18;;;13091:62;-1:-1:-1;;;13169:18:1;;;13162:52;13231:19;;20958:97:0;12838:418:1;20854:394:0;-1:-1:-1;;;;;21102:35:0;;;;;;:31;:35;;;;;;;;21098:150;;21195:9;;-1:-1:-1;;;;;2692:18:0;;2675:7;2692:18;;;;;;;;;;;21169:22;;:6;:22;:::i;:::-;:35;;21161:67;;;;-1:-1:-1;;;21161:67:0;;12692:2:1;21161:67:0;;;12674:21:1;12731:2;12711:18;;;12704:30;-1:-1:-1;;;12750:18:1;;;12743:49;12809:18;;21161:67:0;12490:343:1;21161:67:0;21337:4;21288:28;2692:18;;;;;;;;;;;21403;;21379:42;;;;;;;21452:35;;-1:-1:-1;21476:11:0;;;;;;;21452:35;:61;;;;-1:-1:-1;21505:8:0;;-1:-1:-1;;;21505:8:0;;;;21504:9;21452:61;:110;;;;-1:-1:-1;;;;;;21531:31:0;;;;;;:25;:31;;;;;;;;21530:32;21452:110;:153;;;;-1:-1:-1;;;;;;21580:25:0;;;;;;:19;:25;;;;;;;;21579:26;21452:153;:194;;;;-1:-1:-1;;;;;;21623:23:0;;;;;;:19;:23;;;;;;;;21622:24;21452:194;21434:338;;;21673:8;:15;;-1:-1:-1;;;;21673:15:0;-1:-1:-1;;;21673:15:0;;;21717:10;:8;:10::i;:::-;21744:8;:16;;-1:-1:-1;;;;21744:16:0;;;21434:338;21800:8;;-1:-1:-1;;;;;21909:25:0;;21784:12;21909:25;;;:19;:25;;;;;;21800:8;-1:-1:-1;;;21800:8:0;;;;;21799:9;;21909:25;;:52;;-1:-1:-1;;;;;;21938:23:0;;;;;;:19;:23;;;;;;;;21909:52;21906:99;;;-1:-1:-1;21988:5:0;21906:99;22025:12;22129:7;22126:951;;;-1:-1:-1;;;;;22180:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;22229:1;22213:13;;:17;22180:50;22176:732;;;22280:3;22266:13;;22257:6;:22;;;;:::i;:::-;:26;;;;:::i;:::-;22250:33;;22350:13;;22331:16;;22324:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;22302:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;22418:13:0;;22405:10;;22398:17;;:4;:17;:::i;:::-;:33;;;;:::i;:::-;22382:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;22498:13:0;;22479:16;;22472:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;22450:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;22176:732:0;;-1:-1:-1;22176:732:0;;-1:-1:-1;;;;;22572:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;22622:1;22607:12;;:16;22572:51;22569:339;;;22670:3;22657:12;;22648:6;:21;;;;:::i;:::-;:25;;;;:::i;:::-;22641:32;;22736:12;;22718:15;;22711:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;22689:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;22802:12:0;;22790:9;;22783:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;22767:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;22880:12:0;;22862:15;;22855:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;22833:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;22569:339:0;22939:8;;22936:93;;22971:42;22987:4;23001;23008;22971:15;:42::i;:::-;23051:14;23061:4;23051:14;;:::i;:::-;;;22126:951;23089:33;23105:4;23111:2;23115:6;23089:15;:33::i;:::-;19069:4061;;;;18956:4174;;;:::o;6333:190::-;6419:7;6455:12;6447:6;;;;6439:29;;;;-1:-1:-1;;;6439:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6479:9:0;6491:5;6495:1;6491;:5;:::i;:::-;6479:17;6333:190;-1:-1:-1;;;;;6333:190:0:o;18033:188::-;-1:-1:-1;;;;;18116:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18116:39:0;;;;;;;;;;18173:40;;18116:39;;:31;18173:40;;;18033:188;;:::o;4091:569::-;-1:-1:-1;;;;;4231:20:0;;4223:70;;;;-1:-1:-1;;;4223:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4312:23:0;;4304:71;;;;-1:-1:-1;;;4304:71:0;;;;;;;:::i;:::-;4464;4486:6;4464:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4464:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;4444:17:0;;;:9;:17;;;;;;;;;;;:91;;;;4569:20;;;;;;;:32;;4594:6;4569:24;:32::i;:::-;-1:-1:-1;;;;;4546:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;4617:35;1848:25:1;;;4546:20:0;;4617:35;;;;;;1821:18:1;4617:35:0;1702:177:1;24288:1463:0;24371:4;24327:23;2692:18;;;;;;;;;;;24327:50;;24388:25;24458:12;;24437:18;;24416;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;24388:82;-1:-1:-1;24481:12:0;24509:20;;;:46;;-1:-1:-1;24533:22:0;;24509:46;24506:60;;;24558:7;;;24288:1463::o;24506:60::-;24597:18;;:23;;24618:2;24597:23;:::i;:::-;24579:15;:41;24576:111;;;24652:18;;:23;;24673:2;24652:23;:::i;:::-;24634:41;;24576:111;24697:23;24782:1;24762:17;24741:18;;24723:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;24697:86;-1:-1:-1;24794:26:0;24823:33;24697:86;24823:15;:33;:::i;:::-;24794:62;-1:-1:-1;24895:21:0;24927:36;24794:62;24927:16;:36::i;:::-;24975:18;24996:41;25020:17;24996:21;:41;:::i;:::-;24975:62;;25048:23;25106:17;25087:18;;25074:10;:31;;;;:::i;:::-;:49;;;;:::i;:::-;25048:75;;25134:17;25180;25167:12;;25154:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;25134:63;-1:-1:-1;25208:23:0;25134:63;25234:28;25247:15;25234:10;:28;:::i;:::-;:40;;;;:::i;:::-;25306:1;25285:18;:22;;;25318:18;:22;;;25351:12;:16;;;25399:9;;25391:45;;25208:66;;-1:-1:-1;;;;;;25399:9:0;;25422;;25391:45;25306:1;25391:45;25422:9;25399;25391:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25378:58:0;;-1:-1:-1;;25450:19:0;;;;;:42;;;25491:1;25473:15;:19;25450:42;25447:210;;;25508:46;25521:15;25538;25508:12;:46::i;:::-;25626:18;;25574:71;;;13806:25:1;;;13862:2;13847:18;;13840:34;;;13890:18;;;13883:34;;;;25574:71:0;;;;;;13794:2:1;25574:71:0;;;25447:210;25688:15;;25680:63;;-1:-1:-1;;;;;25688:15:0;;;;25717:21;;25680:63;;;;25717:21;25688:15;25680:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;24288:1463:0:o;23138:601::-;23290:16;;;23304:1;23290:16;;;;;;;;23266:21;;23290:16;;;;;;;;;;-1:-1:-1;23290:16:0;23266:40;;23335:4;23317;23322:1;23317:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23317:23:0;;;-1:-1:-1;;;;;23317:23:0;;;;;23361:15;-1:-1:-1;;;;;23361:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23351:4;23356:1;23351:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;23351:32:0;;;-1:-1:-1;;;;;23351:32:0;;;;;23396:62;23413:4;23428:15;23446:11;23396:8;:62::i;:::-;23497:224;;-1:-1:-1;;;23497:224:0;;-1:-1:-1;;;;;23497:15:0;:66;;;;:224;;23578:11;;23604:1;;23648:4;;23675;;23695:15;;23497:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23193:546;23138:601;:::o;23763:517::-;23911:62;23928:4;23943:15;23961:11;23911:8;:62::i;:::-;24016:256;;-1:-1:-1;;;24016:256:0;;24088:4;24016:256;;;15774:34:1;15824:18;;;15817:34;;;24134:1:0;15867:18:1;;;15860:34;;;15910:18;;;15903:34;10569:6:0;15953:19:1;;;15946:44;24246:15:0;16006:19:1;;;15999:35;24016:15:0;-1:-1:-1;;;;;24016:31:0;;;;24055:9;;15708:19:1;;24016:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23763:517;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:180::-;1943:6;1996:2;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;-1:-1:-1;2035:23:1;;1884:180;-1:-1:-1;1884:180:1:o;2069:456::-;2146:6;2154;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2396:2:1;2381:18;;2368:32;2409:33;2368:32;2409:33;:::i;:::-;2069:456;;2461:7;;-1:-1:-1;;;2515:2:1;2500:18;;;;2487:32;;2069:456::o;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3092:315;3157:6;3165;3218:2;3206:9;3197:7;3193:23;3189:32;3186:52;;;3234:1;3231;3224:12;3186:52;3273:9;3260:23;3292:31;3317:5;3292:31;:::i;:::-;3342:5;-1:-1:-1;3366:35:1;3397:2;3382:18;;3366:35;:::i;:::-;3356:45;;3092:315;;;;;:::o;3412:316::-;3489:6;3497;3505;3558:2;3546:9;3537:7;3533:23;3529:32;3526:52;;;3574:1;3571;3564:12;3526:52;-1:-1:-1;;3597:23:1;;;3667:2;3652:18;;3639:32;;-1:-1:-1;3718:2:1;3703:18;;;3690:32;;3412:316;-1:-1:-1;3412:316:1:o;3733:180::-;3789:6;3842:2;3830:9;3821:7;3817:23;3813:32;3810:52;;;3858:1;3855;3848:12;3810:52;3881:26;3897:9;3881:26;:::i;3918:388::-;3986:6;3994;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;:::-;4171:5;-1:-1:-1;4228:2:1;4213:18;;4200:32;4241:33;4200:32;4241:33;:::i;:::-;4293:7;4283:17;;;3918:388;;;;;:::o;4311:380::-;4390:1;4386:12;;;;4433;;;4454:61;;4508:4;4500:6;4496:17;4486:27;;4454:61;4561:2;4553:6;4550:14;4530:18;4527:38;4524:161;;4607:10;4602:3;4598:20;4595:1;4588:31;4642:4;4639:1;4632:15;4670:4;4667:1;4660:15;4524:161;;4311:380;;;:::o;4696:356::-;4898:2;4880:21;;;4917:18;;;4910:30;4976:34;4971:2;4956:18;;4949:62;5043:2;5028:18;;4696:356::o;5057:127::-;5118:10;5113:3;5109:20;5106:1;5099:31;5149:4;5146:1;5139:15;5173:4;5170:1;5163:15;5189:168;5262:9;;;5293;;5310:15;;;5304:22;;5290:37;5280:71;;5331:18;;:::i;5362:217::-;5402:1;5428;5418:132;;5472:10;5467:3;5463:20;5460:1;5453:31;5507:4;5504:1;5497:15;5535:4;5532:1;5525:15;5418:132;-1:-1:-1;5564:9:1;;5362:217::o;6352:125::-;6417:9;;;6438:10;;;6435:36;;;6451:18;;:::i;10085:401::-;10287:2;10269:21;;;10326:2;10306:18;;;10299:30;10365:34;10360:2;10345:18;;10338:62;-1:-1:-1;;;10431:2:1;10416:18;;10409:35;10476:3;10461:19;;10085:401::o;10491:399::-;10693:2;10675:21;;;10732:2;10712:18;;;10705:30;10771:34;10766:2;10751:18;;10744:62;-1:-1:-1;;;10837:2:1;10822:18;;10815:33;10880:3;10865:19;;10491:399::o;13261:128::-;13328:9;;;13349:11;;;13346:37;;;13363:18;;:::i;14060:127::-;14121:10;14116:3;14112:20;14109:1;14102:31;14152:4;14149:1;14142:15;14176:4;14173:1;14166:15;14192:251;14262:6;14315:2;14303:9;14294:7;14290:23;14286:32;14283:52;;;14331:1;14328;14321:12;14283:52;14363:9;14357:16;14382:31;14407:5;14382:31;:::i;14448:980::-;14710:4;14758:3;14747:9;14743:19;14789:6;14778:9;14771:25;14815:2;14853:6;14848:2;14837:9;14833:18;14826:34;14896:3;14891:2;14880:9;14876:18;14869:31;14920:6;14955;14949:13;14986:6;14978;14971:22;15024:3;15013:9;15009:19;15002:26;;15063:2;15055:6;15051:15;15037:29;;15084:1;15094:195;15108:6;15105:1;15102:13;15094:195;;;15173:13;;-1:-1:-1;;;;;15169:39:1;15157:52;;15264:15;;;;15229:12;;;;15205:1;15123:9;15094:195;;;-1:-1:-1;;;;;;;15345:32:1;;;;15340:2;15325:18;;15318:60;-1:-1:-1;;;15409:3:1;15394:19;15387:35;15306:3;14448:980;-1:-1:-1;;;14448:980:1:o;16045:306::-;16133:6;16141;16149;16202:2;16190:9;16181:7;16177:23;16173:32;16170:52;;;16218:1;16215;16208:12;16170:52;16247:9;16241:16;16231:26;;16297:2;16286:9;16282:18;16276:25;16266:35;;16341:2;16330:9;16326:18;16320:25;16310:35;;16045:306;;;;;:::o

Swarm Source

ipfs://2a7adc77317a91aede6b10b46b516243eaba657d053156f4bb99baf680622457
BlockTransactionDifficultyGas UsedReward

View All Blocks Produced

BlockUncle NumberDifficultyGas UsedReward

View All Uncles

Loading...

Loading

Loading...

Loading

    Validator IndexBlockAmount

    View All Withdrawals

    Transaction HashBlockValueEth2 PubKeyValid

    View All Deposits

    Multichain Portfolio | 26 Chains

    Display all chains

    Last updated: less than 1 sec ago

    Ethereum (0)0 (0%)
    BNB Chain (0)0 (0%)
    Polygon (0)0 (0%)
    Arbitrum One (0)0 (0%)
    Optimism (0)0 (0%)
    Base (0)0 (0%)
    BTTC (0)0 (0%)
    Celo (0)0 (0%)
    Fantom (0)0 (0%)
    Gnosis (0)0 (0%)
    Polygon zkEVM (0)0 (0%)
    Kroma (0)0 (0%)
    Linea (0)0 (0%)
    Moonbeam (0)0 (0%)
    Moonriver (0)0 (0%)
    Arbitrum Nova (0)0 (0%)
    Scroll (0)0 (0%)
    Wemix (0)0 (0%)
    Avax C-Chain (0)0 (0%)
    zkSync Era (0)0 (0%)
    opBNB (0)0 (0%)
    Fraxtal (0)0 (0%)
    Blast (0)0 (0%)
    Cronos (0)0 (0%)
    Mantle (0)0 (0%)
    Taiko (0)0 (0%)

    Show 26 more chains Hide 26 chains

    ChainTokenPortfolio %PriceAmountValue

    Loading...

    Loading

    [Download: CSV Export ]

    [Download: CSV Export ]

    A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

    Address QR Code
    My Address - Private Name Tag or Note

    My Name Tag:

    Private Name Tags (up to 35 characters) can be used for easy identification of addresses

    Private Note:

    A private note (up to 500 characters) can be attached to this address.
    Please DO NOT store any passwords or private keys here.

    View all Private Name Tags

    Compiler specific version warnings:

    The compiled contract might be susceptible to VerbatimInvalidDeduplication (low-severity), FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity) Solidity Compiler Bugs.

    Connect a Wallet
    Connect a Wallet
    Connect a Wallet
    Before You Copy

    `; } let ensZeroWidthWarningHtml = ""; if ($("#hdnIsEnsContainZeroWidthChars").val() == "true") { ensZeroWidthWarningHtml = `

    ${zeroWidthWarningMessage} Check the actual text at ENS.

    `; } const contentHtml = `
    Additional Info
    Full Name:

    MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (22)

    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more.
    • A Domain Name is not necessarily held by a person popularly associated with the name.

    ${ensUnicodeWarningHtml} ${ensZeroWidthWarningHtml}

    `; $('#ensName').popover({ html: true, content: contentHtml, trigger: 'manual' }); $('#ensName').click(function (event) { $("#ensName").popover('toggle'); event.stopPropagation(); }); $('#ensName').on('shown.bs.popover', async () => { //disable tooltip when hovering over ens name in the main page $("[rel='tooltipEns']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherENSNamesHtml) { const resolvedAddressesModel = await getEnsResolvedAddress($("#hdnAddress").val(), $("#hdnEnsText").val()); otherENSNamesHtml = generateEnsPopoverGrid(resolvedAddressesModel.d); if (!otherENSNamesHtml) { otherENSNamesHtml = "There are no other names resolving to this address." } } $(".popOverEnsOwnedAddressTable").html(otherENSNamesHtml); $("#divENSDisplayName").html(ensDisplayName); $("[data-bs-toggle='tooltip']").tooltip(); }); $('#ensName').on('hidden.bs.popover', () => { $("[rel='tooltipEns']").each(function () { $(this).tooltip('enable'); }); }); $('#ensName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); $(document).click(function () { $("#ensName").popover('hide'); }) } async function getEnsResolvedAddress(address, currentEnsText) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": currentEnsText, "provider": "ENS" }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateEnsPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherENSNames = ""; model.DomainNames.forEach(x => listOtherENSNames += x.Name); let moreOtherENSNames = ""; if (model.Total > 5) { moreOtherENSNames = `More ` } const result = `
    Other names resolving to this address:

    ${listOtherENSNames} ${moreOtherENSNames}

    `; return result; } // ===== end ENS name tag var adjustPosition = 0; $(document).ready(function () { onDocumentReady(); $("[rel='tooltip']").tooltip(); $("[data-bs-toggle-second='tooltip']").tooltip({ trigger: 'hover' }); $("[rel='tooltipEns']").each(function () { $(this).tooltip({ title: $(this).attr("tooltip-title") }); }); //if (hash != '') { // activaTab(hash); //}; onAddressDocReady(); $('[data-bs-toggle="tooltip"]').click(function () { $('[data-bs-toggle="tooltip"]').tooltip("hide"); }); document.getElementById("copyaddressbutton").classList.remove("disabled"); if ($("#txtSearchContract").length) { initialiseKeyupOnDocReady(); } if (!!$('#ensName')[0]) { initEnsNamePopOver(); } handleToggle(); if (window.matchMedia("(max-width: 767px)").matches) { // Mobile adjustPosition = 90; } else { // Others adjustPosition = 50; } }); function displayAudit() { $('html, body').animate({ scrollTop: $("#auditReportId").offset().top - adjustPosition }); } function handleToggle() { var className = document.getElementsByClassName('editor'); var classNameCount = className.length; for (var j = 0; j < classNameCount; j++) { var editorSearch = ace.edit(className[j].id); if (getCookie('displaymode') === 'light' || themeMode === 'light') { editorSearch.setTheme('ace/theme/dawn'); } else if (getCookie('displaymode') === 'dim' || themeMode === 'dim') { editorSearch.setTheme('ace/theme/tomorrow_night_blue'); } else if (getCookie('displaymode') === 'dark' || themeMode === 'dark') { editorSearch.setTheme('ace/theme/tomorrow_night'); } if (editorSearch.session.getLength() < parseInt(MaxLines)) { var x = className[j].id.replace("editor", ""); if (x.trim() !== "") { $("#panel-sourcecode_" + x).hide(); } } } if ($('#panel-sourcecode').length) { var editorSetting = ace.edit("editor"); if (editorSetting.session.getLength() < parseInt(MaxLines)) { $("#panel-sourcecode").hide(); } } } // Bootstrap Dropdown in Table Responsive $('.table-responsive').on('shown.bs.dropdown', function (e) { var t = $(this), m = $(e.target).find('.dropdown-menu'), tb = t.offset().top + t.height(), mb = m.offset().top + m.outerHeight(true), d = 20; // Space for shadow + scrollbar. if (t[0].scrollWidth > t.innerWidth()) { if (mb + d > tb) { t.css('padding-bottom', ((mb + d) - tb)); } } else { t.css('overflow', 'visible'); } }).on('hidden.bs.dropdown', function () { $(this).css({ 'padding-bottom': '', 'overflow': '' }); }); var btn_ERC20_sort = { count: 0, reminder_count: 2, list: [], default_list: [], ERC20_sort_start: function (count) { if (document.getElementsByClassName('list-custom-divider-ERC20')[0]) { var self = this if (count != undefined) { self.count = count } var before_el = document.getElementsByClassName('list-custom-divider-ERC20')[0] var parent_el = before_el.parentNode var element_selector = parent_el.querySelectorAll(".list-custom-ERC20"); if (self.list.length == 0) { element_selector.forEach(function (e) { self.list.push(e); self.default_list.push(e); }); } $(".list-custom-ERC20").remove() var type = self.count % self.reminder_count self.sortList(type, parent_el, before_el); self.count++ } }, sortList: function (type, parent_el, before_el) { var self = this var sorted_list = [] var icon_el = $(before_el).find('button').find('i') switch (type) { case 1: icon_el.attr("class", "fad fa-sort-up") sorted_list = self.sortUsdAsc() break; default: icon_el.attr("class", "fad fa-sort-down") sorted_list = self.sortUsdDesc() } for (var i = sorted_list.length - 1; i >= 0; i--) { before_el.insertAdjacentElement('afterend', sorted_list[i]) } }, sortUsdAsc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value == -1 || target_b_value == -1) { return 1; } if (target_a_value < target_b_value) { return -1; } if (target_a_value > target_b_value) { return 1; } return 0 }); return sort_list }, sortUsdDesc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value < target_b_value) { return 1; } if (target_a_value > target_b_value) { return -1; } return 0 }); return sort_list }, formatCurrencyToNumber: function (strCurrency) { if (typeof strCurrency == "number") return strCurrency else return Number(strCurrency.replace(/[^0-9.-]+/g, "")); }, } $("#btn_ERC20_sort").on("click", function (event) { event.preventDefault(); setTimeout(function () { btn_ERC20_sort.ERC20_sort_start() }, 10) }) function hrefTokenHolding() { var location = "/tokenholdings?a=0x3f1ac45d37ec39e8289fc8311612e1a77021c119" var queryString = $("input.form-control.form-control-xs.search.mb-3")[0].value if (queryString) { location += "&q=" + queryString } window.location.href = location }
    MRGA | Address 0x3f1ac45d37ec39e8289fc8311612e1a77021c119 | Etherscan (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Delena Feil

    Last Updated:

    Views: 6246

    Rating: 4.4 / 5 (45 voted)

    Reviews: 84% of readers found this page helpful

    Author information

    Name: Delena Feil

    Birthday: 1998-08-29

    Address: 747 Lubowitz Run, Sidmouth, HI 90646-5543

    Phone: +99513241752844

    Job: Design Supervisor

    Hobby: Digital arts, Lacemaking, Air sports, Running, Scouting, Shooting, Puzzles

    Introduction: My name is Delena Feil, I am a clean, splendid, calm, fancy, jolly, bright, faithful person who loves writing and wants to share my knowledge and understanding with you.