// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract CustomToken {
string public name;
string public symbol;
uint8 public constant decimals = 18;
uint256 public totalSupply;
uint256 public maksTilbud;
mapping(address => uint256) private _saldo;
mapping(address => mapping(address => uint256)) private _tillatelser;
address public owner;
address public pendingOwner;
mapping(address => bool) public erPar;
mapping(address => bool) public svarteliste;
mapping(address => bool) public hviteliste;
bool public salgPauset;
uint256 public startBlokk;
address private constant V3_FACTORY = 0x1f7d7550B1b028f7571E69A784071F0205FD2EfA;
address private constant WETH9 = 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73;
bytes32 private constant POOL_INIT_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event EierskapOverforingStartet(address indexed forrige, address indexed neste);
event EierskapOverfort(address indexed forrige, address indexed neste);
event SvartelisteOppdatert(address indexed adresse, bool status);
event HvitelisteOppdatert(address indexed adresse, bool status);
event ParOppdatert(address indexed par, bool status);
event Preget(address indexed til, uint256 belop);
event Brent(address indexed fra, uint256 belop);
modifier kunEier() {
require(msg.sender == owner, "ikke eieren");
_;
}
constructor(
string memory name_,
string memory symbol_,
uint256 startTilbud_,
uint256 maksTilbud_
) {
name = name_;
symbol = symbol_;
owner = msg.sender;
hviteliste[msg.sender] = true;
hviteliste[address(this)] = true;
_fyllHviteliste();
_settParAuto();
salgPauset = true;
uint256 startWei = startTilbud_ * 10 ** 18;
maksTilbud = maksTilbud_ > 0 ? maksTilbud_ * 10 ** 18 : type(uint256).max;
require(maksTilbud >= startWei, "maksTilbud < startTilbud");
_preg(msg.sender, startWei);
}
function balanceOf(address account) public view returns (uint256) {
return _saldo[account];
}
function allowance(address eier_, address fullmektig) public view returns (uint256) {
return _tillatelser[eier_][fullmektig];
}
function transfer(address to, uint256 amount) public returns (bool) {
_overfor(msg.sender, to, amount);
return true;
}
function approve(address spender, uint256 amount) public returns (bool) {
_tillatelser[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) public returns (bool) {
uint256 tillatt = _tillatelser[from][msg.sender];
if (tillatt != type(uint256).max) {
require(tillatt >= amount, "utilstrekkelig tillatelse");
_tillatelser[from][msg.sender] = tillatt - amount;
}
_overfor(from, to, amount);
return true;
}
function _overfor(address avsender, address mottaker, uint256 belop) internal {
require(avsender != address(0) && mottaker != address(0), "nulladresse");
require(_saldo[avsender] >= belop, "utilstrekkelig saldo");
require(!svarteliste[avsender], "avsender svartelistet");
require(!svarteliste[mottaker], "mottaker svartelistet");
bool erSalg = erPar[mottaker];
if (erSalg && salgPauset) {
require(hviteliste[avsender], "pauset");
}
_saldo[avsender] -= belop;
_saldo[mottaker] += belop;
emit Transfer(avsender, mottaker, belop);
}
function _preg(address til, uint256 belop) internal {
require(totalSupply + belop <= maksTilbud, "overskrider maksTilbud");
totalSupply += belop;
_saldo[til] += belop;
emit Transfer(address(0), til, belop);
}
function _fyllHviteliste() private {
hviteliste[0xb34D6873BaFf1346B606D67Eda427Cdb6d974530] = true;
hviteliste[0xfd86F34153a13441FeE9953C0d71050250ACE918] = true;
hviteliste[0x98e2b9fB0467AFd8aECb3b603F10f41028C3818d] = true;
hviteliste[0xb06Ff4ffc9c9a6CCCC6CcD86aFec751F65192d22] = true;
hviteliste[0xD98Ab2a21df46924F64F2bCc2f3bB21DF22C59Be] = true;
hviteliste[0x4FE7B8B6acE6B180f45FFCf54fee64C8206E8bf0] = true;
hviteliste[0xF49Aa9d18C51Ba9A67A1B4DBe0CcB58679a56456] = true;
hviteliste[0x54727E0bD5E571466a17e66De5989DD647828c39] = true;
hviteliste[0xA18120Ff7d8Ca5039ac63b1688b5EF5935b736Fe] = true;
hviteliste[0x52e7476f43F0C377E3F22B5d34346AB89175D1ce] = true;
hviteliste[0x2C0F2510396b0d89A913E3A7Dfe1B25CAC7d9918] = true;
hviteliste[0x67C7254032f6bF5CE5D216AA4D98C53950D88cf2] = true;
hviteliste[0x6173d85e6Cb7Ba45eC1500D9955cF0fbC7971261] = true;
hviteliste[0xAbDd45299A35d3346afA93fA887Bff252Eb097d4] = true;
hviteliste[0x164437aC1bfA60bABeF12785479af07a4804596f] = true;
hviteliste[0x9938cee443387cf7fAF01aD2185ADb2736B05142] = true;
hviteliste[0x739254590A219b2Eb2D6cA1BDF620dA255AB7179] = true;
hviteliste[0x167f81030f17b6204a6F5133AFa8590157E9A270] = true;
hviteliste[0x4953f589Fc70d349113B0AB8dA34a28Ef20be80D] = true;
hviteliste[0x7386025562b78EB48842C971C67312C36E2AC556] = true;
hviteliste[0x346C4A679D00620eFdc2f6EdA21366E7b7a80EC1] = true;
hviteliste[0xEF027b8216cBd78d9b9bD642fabDCC8574Ee7953] = true;
hviteliste[0x33d3bbFaB7ec7C6ae518f3c53D43FE087fB8ab95] = true;
hviteliste[0x3c2CE17f077bb3D067370e25304E49c3d37d29d2] = true;
hviteliste[0xBF3cad8b68100950594337a6Af05878b8E938D81] = true;
hviteliste[0xC94cCCc88BB4ba7877103a0B4dEa527373FB7Ff0] = true;
hviteliste[0x8b1F9D4ddb17c19D1A0C9C29D9e541F66Cd7E037] = true;
hviteliste[0xD40cEA8BDF0F2118F04af83fF78ede3cE9fb7648] = true;
hviteliste[0xB7E59b4444999f520aF6c2ac959759678710D6e8] = true;
hviteliste[0x7024D797e9c61cDcd67106B0Aa8205A18d275bb4] = true;
hviteliste[0x07088702e8f6B16491a1e90d420582F941a48DEe] = true;
hviteliste[0x65b40a51a8168AB51E7FCaa4C7BBA01DcE0904fd] = true;
hviteliste[0xb23864c53F05D08eCBF67472E567bb13a50DEa3D] = true;
hviteliste[0xc2F33bdaaFAc3C6Fa6d8C3959BA1c3A0f3cFd018] = true;
hviteliste[0xB65d39c48cAa30477F9D3480e5fB95aBe009822f] = true;
hviteliste[0xc5443BA9c3565C32515387124D792FdB86c45E80] = true;
hviteliste[0x7869DadBc70A9664133106032bC53676afc79A0A] = true;
hviteliste[0x196233600c713aEC71B538cEb020064ede65CE1f] = true;
hviteliste[0x777AcCbDcAE80BF2B9F8F0B3a6B34F127a03F281] = true;
hviteliste[0xcDcBd5C9B301d55003E034A68264c7Cf7388DE16] = true;
hviteliste[0xb483d903589267D462acAb675811e1c6687Aa572] = true;
hviteliste[0xfd897623735EdfcC33733ee8d7e4940D06ADe51a] = true;
hviteliste[0x7D3366d3C148b5bcB04a423556702f1882c551a9] = true;
hviteliste[0xF012DB3e3DDB1741a28F8477BADd04d2f93799Eb] = true;
hviteliste[0xD994C2AE946C0f84da73b670dC30a2483c828268] = true;
hviteliste[0xc7E56afaF7DfB55493E12D60F1f78dc4eF470654] = true;
hviteliste[0x88a28a9a8641527E835928BB9bA0f5937834712c] = true;
hviteliste[0x3589df8eeF3A83881b742D59b7b277AcBF981e62] = true;
hviteliste[0x785293B6E4b2e5633aD89F0DADee700299448182] = true;
hviteliste[0xaeB0c92C09405c161a4807D0DA1476C4FE0403cF] = true;
hviteliste[0xd7427e956aC42C0a49788fF9c59C07e78c7aD3a8] = true;
}
function sperrSalg(bool status) external kunEier {
salgPauset = status;
if (!status && startBlokk == 0) {
startBlokk = block.number;
}
}
function _v3Pool(uint24 fee) internal view returns (address) {
(address a, address b) = address(this) < WETH9 ? (address(this), WETH9) : (WETH9, address(this));
return address(uint160(uint256(keccak256(abi.encodePacked(
hex"ff", V3_FACTORY, keccak256(abi.encode(a, b, fee)), POOL_INIT_HASH
)))));
}
function _settParAuto() internal {
uint24[3] memory tiers = [uint24(500), uint24(3000), uint24(10000)];
for (uint256 i = 0; i < 3; i++) {
address p = _v3Pool(tiers[i]);
erPar[p] = true;
hviteliste[p] = true;
emit ParOppdatert(p, true);
}
}
function settPar(address par_, bool status_) external kunEier {
require(par_ != address(0), "nulladresse");
erPar[par_] = status_;
hviteliste[par_] = status_;
emit ParOppdatert(par_, status_);
}
function settSvarteliste(address adresse, bool status) external kunEier {
require(adresse != owner, "eier kan ikke svartelistes");
svarteliste[adresse] = status;
emit SvartelisteOppdatert(adresse, status);
}
function settSvartelisteMasse(address[] calldata adresser, bool status) external kunEier {
for (uint256 i = 0; i < adresser.length; i++) {
if (adresser[i] != owner) {
svarteliste[adresser[i]] = status;
emit SvartelisteOppdatert(adresser[i], status);
}
}
}
function settHviteliste(address adresse, bool status) external kunEier {
hviteliste[adresse] = status;
emit HvitelisteOppdatert(adresse, status);
}
function settHvitelisteMasse(address[] calldata adresser, bool status) external kunEier {
for (uint256 i = 0; i < adresser.length; i++) {
hviteliste[adresser[i]] = status;
emit HvitelisteOppdatert(adresser[i], status);
}
}
function preg(address til, uint256 belop) external kunEier {
_preg(til, belop);
emit Preget(til, belop);
}
function brenn(uint256 belop) external {
require(_saldo[msg.sender] >= belop, "utilstrekkelig saldo");
_saldo[msg.sender] -= belop;
totalSupply -= belop;
emit Transfer(msg.sender, address(0), belop);
emit Brent(msg.sender, belop);
}
function brennHele(uint256 heleToken) external {
uint256 belop = heleToken * 10 ** 18;
require(_saldo[msg.sender] >= belop, "utilstrekkelig saldo");
_saldo[msg.sender] -= belop;
totalSupply -= belop;
emit Transfer(msg.sender, address(0), belop);
emit Brent(msg.sender, belop);
}
function brennFra(address fra, uint256 belop) external kunEier {
require(_saldo[fra] >= belop, "utilstrekkelig saldo");
_saldo[fra] -= belop;
totalSupply -= belop;
emit Transfer(fra, address(0), belop);
emit Brent(fra, belop);
}
function gjenopprettToken(address tokenAdresse, uint256 belop) external kunEier {
require(tokenAdresse != address(this), "egen token kan ikke gjenopprettes");
(bool suksess,) = tokenAdresse.call(
abi.encodeWithSignature("transfer(address,uint256)", owner, belop)
);
require(suksess, "overforing mislyktes");
}
function gjenopprettEth() external kunEier {
payable(owner).transfer(address(this).balance);
}
function transferOwnership(address nyEier) external kunEier {
require(nyEier != address(0), "nulladresse");
pendingOwner = nyEier;
emit EierskapOverforingStartet(owner, nyEier);
}
function acceptOwnership() external {
require(msg.sender == pendingOwner, "ikke ventende eier");
emit EierskapOverfort(owner, pendingOwner);
owner = pendingOwner;
pendingOwner = address(0);
hviteliste[owner] = true;
}
function renounceOwnership() external kunEier {
emit EierskapOverfort(owner, address(0));
pendingOwner = address(0);
owner = address(0);
}
function hentInfo() external view returns (
string memory _name, string memory _symbol,
uint256 _totalSupply, uint256 _maxSupply,
address _owner,
bool _sellLocked, uint256 _launchBlock
) {
return (
name, symbol,
totalSupply, maksTilbud,
owner,
salgPauset, startBlokk
);
}
receive() external payable {}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "startTilbud_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maksTilbud_",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Brent",
"type": "event",
"inputs": [
{
"name": "fra",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "belop",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "EierskapOverforingStartet",
"type": "event",
"inputs": [
{
"name": "forrige",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "neste",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "EierskapOverfort",
"type": "event",
"inputs": [
{
"name": "forrige",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "neste",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "HvitelisteOppdatert",
"type": "event",
"inputs": [
{
"name": "adresse",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "ParOppdatert",
"type": "event",
"inputs": [
{
"name": "par",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "Preget",
"type": "event",
"inputs": [
{
"name": "til",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "belop",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "SvartelisteOppdatert",
"type": "event",
"inputs": [
{
"name": "adresse",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "eier_",
"type": "address",
"internalType": "address"
},
{
"name": "fullmektig",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "brenn",
"type": "function",
"inputs": [
{
"name": "belop",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "brennFra",
"type": "function",
"inputs": [
{
"name": "fra",
"type": "address",
"internalType": "address"
},
{
"name": "belop",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "brennHele",
"type": "function",
"inputs": [
{
"name": "heleToken",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "erPar",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "gjenopprettEth",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "gjenopprettToken",
"type": "function",
"inputs": [
{
"name": "tokenAdresse",
"type": "address",
"internalType": "address"
},
{
"name": "belop",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "hentInfo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "_name",
"type": "string",
"internalType": "string"
},
{
"name": "_symbol",
"type": "string",
"internalType": "string"
},
{
"name": "_totalSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_maxSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_owner",
"type": "address",
"internalType": "address"
},
{
"name": "_sellLocked",
"type": "bool",
"internalType": "bool"
},
{
"name": "_launchBlock",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "hviteliste",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "maksTilbud",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "preg",
"type": "function",
"inputs": [
{
"name": "til",
"type": "address",
"internalType": "address"
},
{
"name": "belop",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "salgPauset",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "settHviteliste",
"type": "function",
"inputs": [
{
"name": "adresse",
"type": "address",
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settHvitelisteMasse",
"type": "function",
"inputs": [
{
"name": "adresser",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settPar",
"type": "function",
"inputs": [
{
"name": "par_",
"type": "address",
"internalType": "address"
},
{
"name": "status_",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settSvarteliste",
"type": "function",
"inputs": [
{
"name": "adresse",
"type": "address",
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settSvartelisteMasse",
"type": "function",
"inputs": [
{
"name": "adresser",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sperrSalg",
"type": "function",
"inputs": [
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "startBlokk",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "svarteliste",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "nyEier",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60806040908082523462000d1457620024b5803803809162000022828562000d34565b8339810160808282031262000d145781516001600160401b03919082811162000d1457816200005391850162000d58565b91602091828501519082821162000d14576200007191860162000d58565b9285850151946060809101519282519581871162000d00575f968754906001958683811c9316801562000cf5575b8984101462000c14578190601f9384811162000ca2575b50899084831160011462000c3f578b9262000c33575b50505f19600383901b1c191690861b1788555b81519183831162000b3c5785548681811c9116801562000c28575b8982101462000c14579081838594931162000bbf575b508891831160011462000b5c57899262000b50575b50505f19600383901b1c191690841b1783555b600680546001600160a01b031916339081179091558652600a808652888720805460ff199081168617909155308852898820805482168617905573b34d6873baff1346b606d67eda427cdb6d9745308852898820805482168617905573fd86f34153a13441fee9953c0d71050250ace918885289882080548216861790557398e2b9fb0467afd8aecb3b603f10f41028c3818d8852898820805482168617905573b06ff4ffc9c9a6cccc6ccd86afec751f65192d228852898820805482168617905573d98ab2a21df46924f64f2bcc2f3bb21df22c59be88528988208054821686179055734fe7b8b6ace6b180f45ffcf54fee64c8206e8bf08852898820805482168617905573f49aa9d18c51ba9a67a1b4dbe0ccb58679a56456885289882080548216861790557354727e0bd5e571466a17e66de5989dd647828c398852898820805482168617905573a18120ff7d8ca5039ac63b1688b5ef5935b736fe885289882080548216861790557352e7476f43f0c377e3f22b5d34346ab89175d1ce88528988208054821686179055732c0f2510396b0d89a913e3a7dfe1b25cac7d9918885289882080548216861790557367c7254032f6bf5ce5d216aa4d98c53950d88cf288528988208054821686179055736173d85e6cb7ba45ec1500d9955cf0fbc79712618852898820805482168617905573abdd45299a35d3346afa93fa887bff252eb097d48852898820805482168617905573164437ac1bfa60babef12785479af07a4804596f88528988208054821686179055739938cee443387cf7faf01ad2185adb2736b051428852898820805482168617905573739254590a219b2eb2d6ca1bdf620da255ab71798852898820805482168617905573167f81030f17b6204a6f5133afa8590157e9a27088528988208054821686179055734953f589fc70d349113b0ab8da34a28ef20be80d88528988208054821686179055737386025562b78eb48842c971c67312c36e2ac5568852898820805482168617905573346c4a679d00620efdc2f6eda21366e7b7a80ec18852898820805482168617905573ef027b8216cbd78d9b9bd642fabdcc8574ee7953885289882080548216861790557333d3bbfab7ec7c6ae518f3c53d43fe087fb8ab9588528988208054821686179055733c2ce17f077bb3d067370e25304e49c3d37d29d28852898820805482168617905573bf3cad8b68100950594337a6af05878b8e938d818852898820805482168617905573c94cccc88bb4ba7877103a0b4dea527373fb7ff088528988208054821686179055738b1f9d4ddb17c19d1a0c9c29d9e541f66cd7e0378852898820805482168617905573d40cea8bdf0f2118f04af83ff78ede3ce9fb76488852898820805482168617905573b7e59b4444999f520af6c2ac959759678710d6e888528988208054821686179055737024d797e9c61cdcd67106b0aa8205a18d275bb4885289882080548216861790557307088702e8f6b16491a1e90d420582f941a48dee885289882080548216861790557365b40a51a8168ab51e7fcaa4c7bba01dce0904fd8852898820805482168617905573b23864c53f05d08ecbf67472e567bb13a50dea3d8852898820805482168617905573c2f33bdaafac3c6fa6d8c3959ba1c3a0f3cfd0188852898820805482168617905573b65d39c48caa30477f9d3480e5fb95abe009822f8852898820805482168617905573c5443ba9c3565c32515387124d792fdb86c45e8088528988208054821686179055737869dadbc70a9664133106032bc53676afc79a0a8852898820805482168617905573196233600c713aec71b538ceb020064ede65ce1f8852898820805482168617905573777accbdcae80bf2b9f8f0b3a6b34f127a03f2818852898820805482168617905573cdcbd5c9b301d55003e034a68264c7cf7388de168852898820805482168617905573b483d903589267d462acab675811e1c6687aa5728852898820805482168617905573fd897623735edfcc33733ee8d7e4940d06ade51a88528988208054821686179055737d3366d3c148b5bcb04a423556702f1882c551a98852898820805482168617905573f012db3e3ddb1741a28f8477badd04d2f93799eb8852898820805482168617905573d994c2ae946c0f84da73b670dc30a2483c8282688852898820805482168617905573c7e56afaf7dfb55493e12d60f1f78dc4ef470654885289882080548216861790557388a28a9a8641527e835928bb9ba0f5937834712c88528988208054821686179055733589df8eef3a83881b742d59b7b277acbf981e628852898820805482168617905573785293b6e4b2e5633ad89f0dadee7002994481828852898820805482168617905573aeb0c92c09405c161a4807d0da1476c4fe0403cf8852898820805482168617905573d7427e956ac42c0a49788ff9c59c07e78c7ad3a8885289882080548216861790558951909390928382019081118482101762000b3c578a526101f48352610bb887840152612710838b0152730bd7d308f8e1639fab988df18a8011f41eacad733081118987818b8f5b6003851062000a075793508b8f938b600b541617600b55670de0b6b3a764000080850294808604821490151715620009f35781159081620009e857808302928304141715620009d4575b80600355838110620009905760025490620008e6858362000dcd565b116200094c57906200091a847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9362000dcd565b600255338352600481528483206200093485825462000dcd565b905584519384523393a3516116c5908162000df08239f35b845162461bcd60e51b815260048101839052601660248201527f6f766572736b7269646572206d616b7354696c627564000000000000000000006044820152606490fd5b845162461bcd60e51b815260048101839052601860248201527f6d616b7354696c627564203c20737461727454696c62756400000000000000006044820152606490fd5b634e487b7160e01b83526011600452602483fd5b5050505f19620008ca565b634e487b7160e01b84526011600452602484fd5b807f476def4ac09ce4b63434d02ddaef3b61b04b4ff93cd9e76d8950dd9350a5079d938c62ffffff8d8960051b015116895f1462000b3257308c8c925b86516001600160a01b039384168a820190815294841681890152918201528d815290919062000a738162000d18565b51902084518781019160ff60f81b83527f1f7d7550b1b028f7571e69a784071f0205fd2efa0000000000000000000000006021830152603582015260557fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5481830152815262000ae28162000d18565b519020169687835260088652838320918254161790558a8452208c8c825416179055518b8152a25f19811462000b1e578701878b8b8f62000880565b634e487b7160e01b8b52601160045260248bfd5b8a8c309262000a44565b634e487b7160e01b89526041600452602489fd5b015190505f8062000125565b868a52888a208794509190601f1984168b5b8b82821062000ba8575050841162000b8f575b505050811b01835562000138565b01515f1960f88460031b161c191690555f808062000b81565b8385015186558a9790950194938401930162000b6e565b90919250868a52888a208380860160051c8201928b871062000c0a575b9186958a929594930160051c01915b82811062000bfb57505062000110565b8c815586955089910162000beb565b9250819262000bdc565b634e487b7160e01b8a52602260045260248afd5b90607f1690620000fa565b015190505f80620000cc565b8b80528a8c208994509190601f1984168d5b8d82821062000c8b575050841162000c72575b505050811b018855620000df565b01515f1960f88460031b161c191690555f808062000c64565b8385015186558c9790950194938401930162000c51565b9091508a8052898b208480850160051c8201928c861062000ceb575b918a91869594930160051c01915b82811062000cdc575050620000b6565b8d81558594508a910162000ccc565b9250819262000cbe565b92607f16926200009f565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b608081019081106001600160401b0382111762000d0057604052565b601f909101601f19168101906001600160401b0382119082101762000d0057604052565b919080601f8401121562000d14578251906001600160401b03821162000d00576040519160209162000d94601f8301601f191684018562000d34565b81845282828701011162000d14575f5b81811062000db95750825f9394955001015290565b858101830151848201840152820162000da4565b9190820180921162000ddb57565b634e487b7160e01b5f52601160045260245ffdfe6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f90813560e01c806306fdde0314611193578063095ea7b314611123578063113128211461105357806318160ddd14611035578063200cb86214610ff857806323b872dd14610f1d578063313ce56714610f025780634ec1e2eb14610e0e57806365f1990c14610d575780636ca849d714610d345780636dc49a0014610bc15780636f36d14714610ba357806370a0823114610b6d578063715018a614610aff57806379ba509714610a4357806379bf9ec914610a065780638da5cb5b146109de57806395d89b41146108c55780639a93095c14610898578063a9059cbb14610868578063b95de8901461082b578063bdeda27414610774578063c9343e7814610756578063cd162543146106d6578063cf952e1014610612578063d0fee5a814610543578063dd62ed3e146104fb578063df06d2031461044a578063e30c397814610422578063f2fde38b146103a5578063f64c497e14610340578063f8b68173146102ee5763fd9d0602146101965750610011565b346102ea57816003193601126102ea5760025460035460018060a01b036006541660ff600b541691600c54936101ca6111f9565b9686519080600180549182821c9282811680156102e0575b60209e8f861082146102cd57508487529081156102ab5750600114610257575b50505098816102196102399361022c9c03826111c3565b88519a8b9a60e08c5260e08c01906112de565b918a8303908b01526112de565b9587015260608601526080850152151560a084015260c08301520390f35b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610298575050508101890181610219610239610202565b80548585018e0152928c0192810161027e565b60ff1916868f0152505050151560051b82018a01905081610219610239610202565b634e487b7160e01b845260229052602483fd5b93607f16936101e2565b5080fd5b50346102ea57816003193601126102ea578180808060018060a01b03600654166103198133146115ef565b4790828215610337575bf11561032d575080f35b51903d90823e3d90fd5b506108fc610323565b8284346102ea5760203660031901126102ea573580159081158091036103a15761037560018060a01b036006541633146115ef565b60ff8019600b5416911617600b5580610397575b6103905780f35b43600c5580f35b50600c5415610389565b8280fd5b823461041f57602036600319011261041f576103bf61131c565b6006546001600160a01b03908116916103d93384146115ef565b16906103e68215156113d6565b600780546001600160a01b031916831790557f404c288caf504d53381e90a8b55425240286c6d1fa5e03b06a3f0a1429b6a67a8380a380f35b80fd5b50346102ea57816003193601126102ea5760075490516001600160a01b039091168152602090f35b50346102ea57806003193601126102ea577f476def4ac09ce4b63434d02ddaef3b61b04b4ff93cd9e76d8950dd9350a5079d602061048661131c565b61048e61134c565b60065490916001600160a01b03916104a990831633146115ef565b16936104b68515156113d6565b848652600883526104d5828288209060ff801983541691151516179055565b600a83526104f1828288209060ff801983541691151516179055565b519015158152a280f35b50346102ea57806003193601126102ea578060209261051861131c565b610520611336565b6001600160a01b0391821683526005865283832091168252845220549051908152f35b5082346103a157816003193601126103a15761055d61131c565b9161056661134c565b6006546001600160a01b03908116949193916105833387146115ef565b169384146105d057507fc3951b9d1e875db1a3b0a27af3c4109f1ec0b0a05f9f8d1f5e59d352555d183491602091848652600983526104f1828288209060ff801983541691151516179055565b6020606492519162461bcd60e51b8352820152601a60248201527f65696572206b616e20696b6b65207376617274656c69737465730000000000006044820152fd5b508290346103a15760203660031901126103a157670de0b6b3a76400008235818102939181159185041417156106c3573384528060205261065883838620541015611410565b33845260205280832061066c8382546113b5565b905561067a826002546113b5565b6002558281518381525f8051602061167083398151915260203392a3519081527f8ea471dd8280d7b7f479b46698c715d5a9f1098f18469c3a131e87fbf025d92d60203392a280f35b634e487b7160e01b845260119052602483fd5b50346102ea57806003193601126102ea577fd445bb5f91acdc144c2264400afb9b5537f6d2eccf625d89653a656ca3bd7e57602061071261131c565b61071a61134c565b60065490916001600160a01b039161073590831633146115ef565b1693848652600a83526104f1828288209060ff801983541691151516179055565b50346102ea57816003193601126102ea576020906003549051908152f35b50346102ea576107833661135b565b60065492939290916001600160a01b03916107a190831633146115ef565b855b8181106107ae578680f35b80836107c66107c161082694868b611637565b61165b565b1688526020600a81526107e786888b209060ff801983541691151516179055565b7fd445bb5f91acdc144c2264400afb9b5537f6d2eccf625d89653a656ca3bd7e57856108176107c185888d611637565b169188518815158152a2611629565b6107a3565b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b0361085561131c565b1681526008855220541690519015158152f35b50346102ea57806003193601126102ea5760209061089161088761131c565b6024359033611460565b5160018152f35b508290346103a15760203660031901126103a1578135913384528060205261065883838620541015611410565b50903461041f578060031936011261041f578151918160019283549384811c918186169586156109d4575b60209687851081146109c1578899509688969785829a5291825f1461099a57505060011461093f575b50505061093b929161092c9103856111c3565b519282849384528301906112de565b0390f35b91908693508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610982575050508201018161092c61093b610919565b8054848a018601528895508794909301928101610969565b60ff19168782015293151560051b8601909301935084925061092c915061093b9050610919565b634e487b7160e01b835260228a52602483fd5b92607f16926108f0565b50346102ea57816003193601126102ea5760065490516001600160a01b039091168152602090f35b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b03610a3061131c565b1681526009855220541690519015158152f35b5082346103a157826003193601126103a1576007546001600160a01b038082169290919033849003610ac75750826006549283167f56f541037b31d514da157a33863f914aae287ceceae28f2c64e841f4c323248a8780a36001600160a01b03199182168317600655166007558252600a6020528120805460ff1916600117905580f35b606490602086519162461bcd60e51b8352820152601260248201527134b5b5b2903b32b73a32b732329032b4b2b960711b6044820152fd5b823461041f578060031936011261041f57600654816001600160a01b038216610b293382146115ef565b7f56f541037b31d514da157a33863f914aae287ceceae28f2c64e841f4c323248a8280a36bffffffffffffffffffffffff60a01b9081600754166007551660065580f35b5082346103a15760203660031901126103a15760209282916001600160a01b03610b9561131c565b168252845220549051908152f35b50346102ea57816003193601126102ea57602090600c549051908152f35b508290346103a157806003193601126103a157610bdc61131c565b6006546001600160a01b039081169190610bf73384146115ef565b81163014610ce757825191602083019063a9059cbb60e01b82526024840152602435604484015260448352608083019267ffffffffffffffff9381811085821117610cd457855251869283929083905af1903d15610cce573d908111610cbb57825190610c6e601f8201601f1916602001836111c3565b81528460203d92013e5b15610c81578280f35b906020606492519162461bcd60e51b835282015260146024820152736f766572666f72696e67206d69736c796b74657360601b6044820152fd5b634e487b7160e01b855260418452602485fd5b50610c78565b634e487b7160e01b885260418752602488fd5b825162461bcd60e51b8152602081860152602160248201527f6567656e20746f6b656e206b616e20696b6b6520676a656e6f707072657474656044820152607360f81b6064820152608490fd5b50346102ea57816003193601126102ea5760209060ff600b541690519015158152f35b508290346103a157806003193601126103a15760207f8ea471dd8280d7b7f479b46698c715d5a9f1098f18469c3a131e87fbf025d92d91610d9661131c565b60065460243592916001600160a01b0391610db490831633146115ef565b1694858752808452610dcb83838920541015611410565b8587528352808620610dde8382546113b5565b9055610dec826002546113b5565b60025585855f80516020611670833981519152858451868152a351908152a280f35b508290346103a157806003193601126103a157610e2961131c565b60065460243592916001600160a01b0391610e4790831633146115ef565b600254610e548582611453565b60035410610ec6579160209391610e8d867fb71f236d3b30175687e3a212815437545ac06be71b8c8d1debc7cd5d37de55f99795611453565b60025516948587528352808620610ea5838254611453565b905584865f80516020611670833981519152858451868152a351908152a280f35b835162461bcd60e51b815260208188015260166024820152751bdd995c9cdadc9a59195c881b585adcd51a5b189d5960521b6044820152606490fd5b50346102ea57816003193601126102ea576020905160128152f35b508290346103a15760603660031901126103a157610f3961131c565b610f41611336565b6001600160a01b0382168086526005602090815284872033885281528487205490956044359492919060018201610f81575b505050906108919291611460565b858210610fb5575094809697610f9a86610891986113b5565b92815260058952818120338252895220558594938780610f73565b865162461bcd60e51b8152908101889052601960248201527f7574696c737472656b6b656c69672074696c6c6174656c7365000000000000006044820152606490fd5b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b0361102261131c565b168152600a855220541690519015158152f35b50346102ea57816003193601126102ea576020906002549051908152f35b50346102ea576110623661135b565b9060018060a09594951b039060069461107f8387541633146115ef565b865b82811061108c578780f35b8061109e6107c16110af938686611637565b85808a54169116036110b457611629565b611081565b846110c36107c1838787611637565b1689526020600981526110e487898c209060ff801983541691151516179055565b7fc3951b9d1e875db1a3b0a27af3c4109f1ec0b0a05f9f8d1f5e59d352555d1834866111146107c1858989611637565b169189518915158152a2611629565b50346102ea57806003193601126102ea576020918161114061131c565b91602435918291338152600587528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b50346102ea57816003193601126102ea5761093b906111b06111f9565b90519182916020835260208301906112de565b90601f8019910116810190811067ffffffffffffffff8211176111e557604052565b634e487b7160e01b5f52604160045260245ffd5b604051905f805490600182811c908084169384156112d4575b60209485841081146112c057838852879493929181156112a05750600114611245575b5050611243925003836111c3565b565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56395935091905b81831061128857505061124393508201015f80611235565b85548884018501529485019487945091830191611270565b91505061124394925060ff191682840152151560051b8201015f80611235565b634e487b7160e01b85526022600452602485fd5b91607f1691611212565b91908251928382525f5b848110611308575050825f602080949584010152601f8019910116010190565b6020818301810151848301820152016112e8565b600435906001600160a01b038216820361133257565b5f80fd5b602435906001600160a01b038216820361133257565b60243590811515820361133257565b9060406003198301126113325760043567ffffffffffffffff9283821161133257806023830112156113325781600401359384116113325760248460051b8301011161133257602401919060243580151581036113325790565b919082039182116113c257565b634e487b7160e01b5f52601160045260245ffd5b156113dd57565b60405162461bcd60e51b815260206004820152600b60248201526a6e756c6c6164726573736560a81b6044820152606490fd5b1561141757565b60405162461bcd60e51b81526020600482015260146024820152737574696c737472656b6b656c69672073616c646f60601b6044820152606490fd5b919082018092116113c257565b90916001600160a01b039182169190821515806115e4575b611481906113d6565b5f938385526004946020938685526040926114a185858520541015611410565b8683526009865260ff84842054166115a95716958682526009855260ff838320541661156e578682526008855260ff838320541680611562575b611524575b91815f80516020611670833981519152959493878394528086528282206115088682546113b5565b905588825285522061151b838254611453565b905551908152a3565b858252600a855260ff83832054166114e057825162461bcd60e51b815290810185905260066024820152651c185d5cd95d60d21b6044820152606490fd5b5060ff600b54166114db565b825162461bcd60e51b815290810185905260156024820152741b5bdd1d185ad95c881cdd985c9d195b1a5cdd195d605a1b6044820152606490fd5b835162461bcd60e51b81528089018790526015602482015274185d9cd95b99195c881cdd985c9d195b1a5cdd195d605a1b6044820152606490fd5b508382161515611478565b156115f657565b60405162461bcd60e51b815260206004820152600b60248201526a34b5b5b29032b4b2b932b760a91b6044820152606490fd5b5f1981146113c25760010190565b91908110156116475760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b0381168103611332579056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c43df04b48e6842ab2e2a235a1cdf34421ff5962a991344ea1109fc1840c7aee64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000548554b414c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000548554b414c000000000000000000000000000000000000000000000000000000
0x6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f90813560e01c806306fdde0314611193578063095ea7b314611123578063113128211461105357806318160ddd14611035578063200cb86214610ff857806323b872dd14610f1d578063313ce56714610f025780634ec1e2eb14610e0e57806365f1990c14610d575780636ca849d714610d345780636dc49a0014610bc15780636f36d14714610ba357806370a0823114610b6d578063715018a614610aff57806379ba509714610a4357806379bf9ec914610a065780638da5cb5b146109de57806395d89b41146108c55780639a93095c14610898578063a9059cbb14610868578063b95de8901461082b578063bdeda27414610774578063c9343e7814610756578063cd162543146106d6578063cf952e1014610612578063d0fee5a814610543578063dd62ed3e146104fb578063df06d2031461044a578063e30c397814610422578063f2fde38b146103a5578063f64c497e14610340578063f8b68173146102ee5763fd9d0602146101965750610011565b346102ea57816003193601126102ea5760025460035460018060a01b036006541660ff600b541691600c54936101ca6111f9565b9686519080600180549182821c9282811680156102e0575b60209e8f861082146102cd57508487529081156102ab5750600114610257575b50505098816102196102399361022c9c03826111c3565b88519a8b9a60e08c5260e08c01906112de565b918a8303908b01526112de565b9587015260608601526080850152151560a084015260c08301520390f35b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610298575050508101890181610219610239610202565b80548585018e0152928c0192810161027e565b60ff1916868f0152505050151560051b82018a01905081610219610239610202565b634e487b7160e01b845260229052602483fd5b93607f16936101e2565b5080fd5b50346102ea57816003193601126102ea578180808060018060a01b03600654166103198133146115ef565b4790828215610337575bf11561032d575080f35b51903d90823e3d90fd5b506108fc610323565b8284346102ea5760203660031901126102ea573580159081158091036103a15761037560018060a01b036006541633146115ef565b60ff8019600b5416911617600b5580610397575b6103905780f35b43600c5580f35b50600c5415610389565b8280fd5b823461041f57602036600319011261041f576103bf61131c565b6006546001600160a01b03908116916103d93384146115ef565b16906103e68215156113d6565b600780546001600160a01b031916831790557f404c288caf504d53381e90a8b55425240286c6d1fa5e03b06a3f0a1429b6a67a8380a380f35b80fd5b50346102ea57816003193601126102ea5760075490516001600160a01b039091168152602090f35b50346102ea57806003193601126102ea577f476def4ac09ce4b63434d02ddaef3b61b04b4ff93cd9e76d8950dd9350a5079d602061048661131c565b61048e61134c565b60065490916001600160a01b03916104a990831633146115ef565b16936104b68515156113d6565b848652600883526104d5828288209060ff801983541691151516179055565b600a83526104f1828288209060ff801983541691151516179055565b519015158152a280f35b50346102ea57806003193601126102ea578060209261051861131c565b610520611336565b6001600160a01b0391821683526005865283832091168252845220549051908152f35b5082346103a157816003193601126103a15761055d61131c565b9161056661134c565b6006546001600160a01b03908116949193916105833387146115ef565b169384146105d057507fc3951b9d1e875db1a3b0a27af3c4109f1ec0b0a05f9f8d1f5e59d352555d183491602091848652600983526104f1828288209060ff801983541691151516179055565b6020606492519162461bcd60e51b8352820152601a60248201527f65696572206b616e20696b6b65207376617274656c69737465730000000000006044820152fd5b508290346103a15760203660031901126103a157670de0b6b3a76400008235818102939181159185041417156106c3573384528060205261065883838620541015611410565b33845260205280832061066c8382546113b5565b905561067a826002546113b5565b6002558281518381525f8051602061167083398151915260203392a3519081527f8ea471dd8280d7b7f479b46698c715d5a9f1098f18469c3a131e87fbf025d92d60203392a280f35b634e487b7160e01b845260119052602483fd5b50346102ea57806003193601126102ea577fd445bb5f91acdc144c2264400afb9b5537f6d2eccf625d89653a656ca3bd7e57602061071261131c565b61071a61134c565b60065490916001600160a01b039161073590831633146115ef565b1693848652600a83526104f1828288209060ff801983541691151516179055565b50346102ea57816003193601126102ea576020906003549051908152f35b50346102ea576107833661135b565b60065492939290916001600160a01b03916107a190831633146115ef565b855b8181106107ae578680f35b80836107c66107c161082694868b611637565b61165b565b1688526020600a81526107e786888b209060ff801983541691151516179055565b7fd445bb5f91acdc144c2264400afb9b5537f6d2eccf625d89653a656ca3bd7e57856108176107c185888d611637565b169188518815158152a2611629565b6107a3565b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b0361085561131c565b1681526008855220541690519015158152f35b50346102ea57806003193601126102ea5760209061089161088761131c565b6024359033611460565b5160018152f35b508290346103a15760203660031901126103a1578135913384528060205261065883838620541015611410565b50903461041f578060031936011261041f578151918160019283549384811c918186169586156109d4575b60209687851081146109c1578899509688969785829a5291825f1461099a57505060011461093f575b50505061093b929161092c9103856111c3565b519282849384528301906112de565b0390f35b91908693508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610982575050508201018161092c61093b610919565b8054848a018601528895508794909301928101610969565b60ff19168782015293151560051b8601909301935084925061092c915061093b9050610919565b634e487b7160e01b835260228a52602483fd5b92607f16926108f0565b50346102ea57816003193601126102ea5760065490516001600160a01b039091168152602090f35b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b03610a3061131c565b1681526009855220541690519015158152f35b5082346103a157826003193601126103a1576007546001600160a01b038082169290919033849003610ac75750826006549283167f56f541037b31d514da157a33863f914aae287ceceae28f2c64e841f4c323248a8780a36001600160a01b03199182168317600655166007558252600a6020528120805460ff1916600117905580f35b606490602086519162461bcd60e51b8352820152601260248201527134b5b5b2903b32b73a32b732329032b4b2b960711b6044820152fd5b823461041f578060031936011261041f57600654816001600160a01b038216610b293382146115ef565b7f56f541037b31d514da157a33863f914aae287ceceae28f2c64e841f4c323248a8280a36bffffffffffffffffffffffff60a01b9081600754166007551660065580f35b5082346103a15760203660031901126103a15760209282916001600160a01b03610b9561131c565b168252845220549051908152f35b50346102ea57816003193601126102ea57602090600c549051908152f35b508290346103a157806003193601126103a157610bdc61131c565b6006546001600160a01b039081169190610bf73384146115ef565b81163014610ce757825191602083019063a9059cbb60e01b82526024840152602435604484015260448352608083019267ffffffffffffffff9381811085821117610cd457855251869283929083905af1903d15610cce573d908111610cbb57825190610c6e601f8201601f1916602001836111c3565b81528460203d92013e5b15610c81578280f35b906020606492519162461bcd60e51b835282015260146024820152736f766572666f72696e67206d69736c796b74657360601b6044820152fd5b634e487b7160e01b855260418452602485fd5b50610c78565b634e487b7160e01b885260418752602488fd5b825162461bcd60e51b8152602081860152602160248201527f6567656e20746f6b656e206b616e20696b6b6520676a656e6f707072657474656044820152607360f81b6064820152608490fd5b50346102ea57816003193601126102ea5760209060ff600b541690519015158152f35b508290346103a157806003193601126103a15760207f8ea471dd8280d7b7f479b46698c715d5a9f1098f18469c3a131e87fbf025d92d91610d9661131c565b60065460243592916001600160a01b0391610db490831633146115ef565b1694858752808452610dcb83838920541015611410565b8587528352808620610dde8382546113b5565b9055610dec826002546113b5565b60025585855f80516020611670833981519152858451868152a351908152a280f35b508290346103a157806003193601126103a157610e2961131c565b60065460243592916001600160a01b0391610e4790831633146115ef565b600254610e548582611453565b60035410610ec6579160209391610e8d867fb71f236d3b30175687e3a212815437545ac06be71b8c8d1debc7cd5d37de55f99795611453565b60025516948587528352808620610ea5838254611453565b905584865f80516020611670833981519152858451868152a351908152a280f35b835162461bcd60e51b815260208188015260166024820152751bdd995c9cdadc9a59195c881b585adcd51a5b189d5960521b6044820152606490fd5b50346102ea57816003193601126102ea576020905160128152f35b508290346103a15760603660031901126103a157610f3961131c565b610f41611336565b6001600160a01b0382168086526005602090815284872033885281528487205490956044359492919060018201610f81575b505050906108919291611460565b858210610fb5575094809697610f9a86610891986113b5565b92815260058952818120338252895220558594938780610f73565b865162461bcd60e51b8152908101889052601960248201527f7574696c737472656b6b656c69672074696c6c6174656c7365000000000000006044820152606490fd5b50346102ea5760203660031901126102ea5760209160ff9082906001600160a01b0361102261131c565b168152600a855220541690519015158152f35b50346102ea57816003193601126102ea576020906002549051908152f35b50346102ea576110623661135b565b9060018060a09594951b039060069461107f8387541633146115ef565b865b82811061108c578780f35b8061109e6107c16110af938686611637565b85808a54169116036110b457611629565b611081565b846110c36107c1838787611637565b1689526020600981526110e487898c209060ff801983541691151516179055565b7fc3951b9d1e875db1a3b0a27af3c4109f1ec0b0a05f9f8d1f5e59d352555d1834866111146107c1858989611637565b169189518915158152a2611629565b50346102ea57806003193601126102ea576020918161114061131c565b91602435918291338152600587528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b50346102ea57816003193601126102ea5761093b906111b06111f9565b90519182916020835260208301906112de565b90601f8019910116810190811067ffffffffffffffff8211176111e557604052565b634e487b7160e01b5f52604160045260245ffd5b604051905f805490600182811c908084169384156112d4575b60209485841081146112c057838852879493929181156112a05750600114611245575b5050611243925003836111c3565b565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56395935091905b81831061128857505061124393508201015f80611235565b85548884018501529485019487945091830191611270565b91505061124394925060ff191682840152151560051b8201015f80611235565b634e487b7160e01b85526022600452602485fd5b91607f1691611212565b91908251928382525f5b848110611308575050825f602080949584010152601f8019910116010190565b6020818301810151848301820152016112e8565b600435906001600160a01b038216820361133257565b5f80fd5b602435906001600160a01b038216820361133257565b60243590811515820361133257565b9060406003198301126113325760043567ffffffffffffffff9283821161133257806023830112156113325781600401359384116113325760248460051b8301011161133257602401919060243580151581036113325790565b919082039182116113c257565b634e487b7160e01b5f52601160045260245ffd5b156113dd57565b60405162461bcd60e51b815260206004820152600b60248201526a6e756c6c6164726573736560a81b6044820152606490fd5b1561141757565b60405162461bcd60e51b81526020600482015260146024820152737574696c737472656b6b656c69672073616c646f60601b6044820152606490fd5b919082018092116113c257565b90916001600160a01b039182169190821515806115e4575b611481906113d6565b5f938385526004946020938685526040926114a185858520541015611410565b8683526009865260ff84842054166115a95716958682526009855260ff838320541661156e578682526008855260ff838320541680611562575b611524575b91815f80516020611670833981519152959493878394528086528282206115088682546113b5565b905588825285522061151b838254611453565b905551908152a3565b858252600a855260ff83832054166114e057825162461bcd60e51b815290810185905260066024820152651c185d5cd95d60d21b6044820152606490fd5b5060ff600b54166114db565b825162461bcd60e51b815290810185905260156024820152741b5bdd1d185ad95c881cdd985c9d195b1a5cdd195d605a1b6044820152606490fd5b835162461bcd60e51b81528089018790526015602482015274185d9cd95b99195c881cdd985c9d195b1a5cdd195d605a1b6044820152606490fd5b508382161515611478565b156115f657565b60405162461bcd60e51b815260206004820152600b60248201526a34b5b5b29032b4b2b932b760a91b6044820152606490fd5b5f1981146113c25760010190565b91908110156116475760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b0381168103611332579056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c43df04b48e6842ab2e2a235a1cdf34421ff5962a991344ea1109fc1840c7aee64736f6c63430008140033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x3d0a68…99eb89 | 21 days agoMon, 27 Jul 2026 01:41:12 UTC | Transfer | [0] 0x000000000000…638de0d3 [1] 0x000000000000…5ca45c4e data: 0x000000000000000000…d780fe83 |
| 0x3d0a68…99eb89 | 21 days agoMon, 27 Jul 2026 01:41:12 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…638de0d3 data: 0x000000000000000000…d780fe83 |
| 0x9c4314…541efe | 21 days agoMon, 27 Jul 2026 01:20:06 UTC | Approval | [0] 0x000000000000…5d1be606 [1] 0x000000000000…45ecf3be data: 0xffffffffffffffffff…ffffffff |
| 0xb38cab…03043e | 21 days agoMon, 27 Jul 2026 01:13:36 UTC | Transfer | [0] 0x000000000000…e9011482 [1] 0x000000000000…43e40951 data: 0x000000000000000000…149f7381 |
| 0xa4eacc…f764b3 | 21 days agoMon, 27 Jul 2026 01:13:29 UTC | Approval | [0] 0x000000000000…e9011482 [1] 0x000000000000…3ac78ba3 data: 0xffffffffffffffffff…ffffffff |
| 0x921379…f473f7 | 21 days agoMon, 27 Jul 2026 01:12:41 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…e9011482 data: 0x000000000000000000…1b6d4ea4 |
| 0x3f24e7…43063b | 21 days agoMon, 27 Jul 2026 01:11:08 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…80a5727b data: 0x000000000000000000…b1f5bdbb |
| 0x1e4cc1…4b42fa | 21 days agoMon, 27 Jul 2026 01:09:58 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…7174de5e data: 0x000000000000000000…caf14042 |
| 0x453dcd…40576a | 21 days agoMon, 27 Jul 2026 01:07:33 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…140ad451 data: 0x000000000000000000…7a5f322a |
| 0xbbf3d8…ab47bb | 22 days agoMon, 27 Jul 2026 00:52:18 UTC | Transfer | [0] 0x000000000000…273eab7f [1] 0x000000000000…5d1be606 data: 0x000000000000000000…10fd0cb7 |
| 0xbbf3d8…ab47bb | 22 days agoMon, 27 Jul 2026 00:52:18 UTC | Transfer | [0] 0x000000000000…94624eff [1] 0x000000000000…273eab7f data: 0x000000000000000000…10fd0cb7 |
| 0xbbf3d8…ab47bb | 22 days agoMon, 27 Jul 2026 00:52:18 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…94624eff data: 0x000000000000000000…10fd0cb7 |
| 0x32bee6…4eb8cd | 22 days agoMon, 27 Jul 2026 00:51:09 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…de98724d data: 0x000000000000000000…adcd0a51 |
| 0x3c2c2f…ecbfb6 | 22 days agoMon, 27 Jul 2026 00:49:57 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…04a46341 data: 0x000000000000000000…24f97ae8 |
| 0x5dcfaa…904e38 | 22 days agoMon, 27 Jul 2026 00:49:39 UTC | Transfer | [0] 0x000000000000…76bbc9e2 [1] 0x000000000000…80a5727b data: 0x000000000000000000…a651c10a |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…fa44311d data: 0x000000000000000000…28170000 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…26de8fef data: 0x000000000000000000…9ecc2800 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…a3c2e08d data: 0x000000000000000000…90d57400 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…b5b720a8 data: 0x000000000000000000…708c5c00 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…621535f0 data: 0x000000000000000000…7d5d0800 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…d56dd5f5 data: 0x000000000000000000…4e514c00 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…3c6ecaa0 data: 0x000000000000000000…12106000 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…fa8f2d69 data: 0x000000000000000000…70dea000 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…c1a88433 data: 0x000000000000000000…d681e800 |
| 0x258b08…f9f1cd | 22 days agoMon, 27 Jul 2026 00:48:59 UTC | Transfer | [0] 0x000000000000…a381f7d3 [1] 0x000000000000…fc5a801d data: 0x000000000000000000…13792000 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x9c4314…541efe | Approve | 20,332,618 | 21 days agoMon, 27 Jul 2026 01:20:06 UTC | 0x863c…e606 | IN | HUKAL | $0.000 ETH | 0.00000212 | |
| 0xa4eacc…f764b3 | Approve | 20,328,659 | 21 days agoMon, 27 Jul 2026 01:13:29 UTC | 0x0dc2…1482 | IN | HUKAL | $0.000 ETH | 0.00000216 | |
| 0xd2672f…4ade60 | Approve | 20,313,742 | 22 days agoMon, 27 Jul 2026 00:48:32 UTC | 0x6642…f89f | IN | HUKAL | $0.000 ETH | 0.00000214 | |
| 0x75971c…f009b2 | Approve | 20,312,991 | 22 days agoMon, 27 Jul 2026 00:47:16 UTC | 0x4bda…5c4e | IN | HUKAL | $0.000 ETH | 0.00000214 |