ETH Price: $2,288.25 (+0.50%)

Contract

0x861E3c82Bc2753ea64aE5f962d993DF6853a6700
 

Overview

ETH Balance

29.16 ETH

Eth Value

$66,725.27 (@ $2,288.25/ETH)

Multichain Info

Transaction Hash
Method
Block
From
To
Mint207013932024-09-07 21:23:359 hrs ago1725744215IN
0x861E3c82...6853a6700
0 ETH0.000317272.73646428
Mint206932422024-09-06 18:08:2336 hrs ago1725646103IN
0x861E3c82...6853a6700
0 ETH0.0011763310.14588515
Mint206848612024-09-05 14:03:472 days ago1725545027IN
0x861E3c82...6853a6700
0 ETH0.00075196.48453552
Burn206827322024-09-05 6:55:472 days ago1725519347IN
0x861E3c82...6853a6700
0.03 ETH0.000143491.8262661
Mint206792322024-09-04 19:13:233 days ago1725477203IN
0x861E3c82...6853a6700
0 ETH0.000890847.6819426
Mint206681032024-09-03 5:56:595 days ago1725343019IN
0x861E3c82...6853a6700
0 ETH0.000135611.169652
Mint206677712024-09-03 4:50:235 days ago1725339023IN
0x861E3c82...6853a6700
0 ETH0.000134971.16389174
Burn206667322024-09-03 1:21:235 days ago1725326483IN
0x861E3c82...6853a6700
0.03 ETH0.000118161.50390738
Mint206634702024-09-02 14:26:235 days ago1725287183IN
0x861E3c82...6853a6700
0 ETH0.001091549.41457851
Mint206621862024-09-02 10:07:235 days ago1725271643IN
0x861E3c82...6853a6700
0 ETH0.000807216.95931604
Mint206620642024-09-02 9:42:595 days ago1725270179IN
0x861E3c82...6853a6700
0 ETH0.000368433.17740621
Mint206618912024-09-02 9:08:235 days ago1725268103IN
0x861E3c82...6853a6700
0 ETH0.000372513.21259688
Mint206574862024-09-01 18:22:596 days ago1725214979IN
0x861E3c82...6853a6700
0 ETH0.000162061.39779167
Mint206559692024-09-01 13:18:236 days ago1725196703IN
0x861E3c82...6853a6700
0 ETH0.000135921.17246767
Mint206540732024-09-01 6:57:116 days ago1725173831IN
0x861E3c82...6853a6700
0 ETH0.000126051.08719546
Mint206522562024-09-01 0:52:357 days ago1725151955IN
0x861E3c82...6853a6700
0 ETH0.000124931.07748438
Mint206522392024-09-01 0:49:117 days ago1725151751IN
0x861E3c82...6853a6700
0 ETH0.000112511.13830826
Mint206517972024-08-31 23:20:477 days ago1725146447IN
0x861E3c82...6853a6700
0 ETH0.000104331.05566622
Mint206516632024-08-31 22:53:597 days ago1725144839IN
0x861E3c82...6853a6700
0 ETH0.000126791.09361734
Mint206494602024-08-31 15:31:237 days ago1725118283IN
0x861E3c82...6853a6700
0 ETH0.00015861.36765395
Mint206487322024-08-31 13:04:477 days ago1725109487IN
0x861E3c82...6853a6700
0 ETH0.000167061.44138845
Mint206473752024-08-31 8:31:357 days ago1725093095IN
0x861E3c82...6853a6700
0 ETH0.000129891.31411958
Mint206473722024-08-31 8:30:597 days ago1725093059IN
0x861E3c82...6853a6700
0 ETH0.000140481.21155369
Mint206467642024-08-31 6:28:477 days ago1725085727IN
0x861E3c82...6853a6700
0 ETH0.000131341.13275683
Mint206463582024-08-31 5:07:118 days ago1725080831IN
0x861E3c82...6853a6700
0 ETH0.000078240.79161241
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
207013932024-09-07 21:23:359 hrs ago1725744215
0x861E3c82...6853a6700
0 ETH
207013932024-09-07 21:23:359 hrs ago1725744215
0x861E3c82...6853a6700
0 ETH
207013932024-09-07 21:23:359 hrs ago1725744215
0x861E3c82...6853a6700
0 ETH
207013932024-09-07 21:23:359 hrs ago1725744215
0x861E3c82...6853a6700
0 ETH
206932422024-09-06 18:08:2336 hrs ago1725646103
0x861E3c82...6853a6700
0 ETH
206932422024-09-06 18:08:2336 hrs ago1725646103
0x861E3c82...6853a6700
0 ETH
206932422024-09-06 18:08:2336 hrs ago1725646103
0x861E3c82...6853a6700
0 ETH
206932422024-09-06 18:08:2336 hrs ago1725646103
0x861E3c82...6853a6700
0 ETH
206848612024-09-05 14:03:472 days ago1725545027
0x861E3c82...6853a6700
0 ETH
206848612024-09-05 14:03:472 days ago1725545027
0x861E3c82...6853a6700
0 ETH
206848612024-09-05 14:03:472 days ago1725545027
0x861E3c82...6853a6700
0 ETH
206848612024-09-05 14:03:472 days ago1725545027
0x861E3c82...6853a6700
0 ETH
206827322024-09-05 6:55:472 days ago1725519347
0x861E3c82...6853a6700
0 ETH
206827322024-09-05 6:55:472 days ago1725519347
0x861E3c82...6853a6700
0 ETH
206792322024-09-04 19:13:233 days ago1725477203
0x861E3c82...6853a6700
0 ETH
206792322024-09-04 19:13:233 days ago1725477203
0x861E3c82...6853a6700
0 ETH
206792322024-09-04 19:13:233 days ago1725477203
0x861E3c82...6853a6700
0 ETH
206792322024-09-04 19:13:233 days ago1725477203
0x861E3c82...6853a6700
0 ETH
206681032024-09-03 5:56:595 days ago1725343019
0x861E3c82...6853a6700
0 ETH
206681032024-09-03 5:56:595 days ago1725343019
0x861E3c82...6853a6700
0 ETH
206681032024-09-03 5:56:595 days ago1725343019
0x861E3c82...6853a6700
0 ETH
206681032024-09-03 5:56:595 days ago1725343019
0x861E3c82...6853a6700
0 ETH
206677712024-09-03 4:50:235 days ago1725339023
0x861E3c82...6853a6700
0 ETH
206677712024-09-03 4:50:235 days ago1725339023
0x861E3c82...6853a6700
0 ETH
206677712024-09-03 4:50:235 days ago1725339023
0x861E3c82...6853a6700
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BRC20Factory

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-11-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IBRC20Factory {
    function parameters() external view returns (string memory name, string memory symbol, uint8 decimals);
}

contract BRC20 {
    string public name;
    string public symbol;
    uint8 public immutable decimals;
    address public immutable factory;
    uint256  public totalSupply;
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping(address => uint256)) public allowance;
    mapping (address => uint256) public nonces;

    bytes32 public DOMAIN_SEPARATOR;
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    constructor() {
        (name, symbol, decimals) = IBRC20Factory(msg.sender).parameters();

        factory = msg.sender;

        uint256 chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this)));
    }

    function mint(address to, uint256 amount) external {
        require(msg.sender == factory, "unauthorized");
        _mint(to, amount);
    }

    function burn(uint256 amount) external {
        require(msg.sender == factory, "unauthorized");
        _burn(msg.sender, amount);
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) external returns (bool) {
        balanceOf[msg.sender] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external returns (bool) {
        uint256 allowed = allowance[from][msg.sender];

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);
        return true;
    }

    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'EXPIRED');
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    '\x19\x01',
                    DOMAIN_SEPARATOR,
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                )
            );
            address recoveredAddress = ecrecover(digest, v, r, s);
            require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');
            allowance[recoveredAddress][spender] = value;
        }
        emit Approval(owner, spender, value);
    }

    function _mint(address to, uint256 amount) internal {
        totalSupply += amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal {
        balanceOf[from] -= amount;

        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}


contract BRC20Factory  {

    bytes32 private constant DOMAIN_NAME = keccak256("MultiBit");
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
    bytes32 public constant MINT_TYPEHASH = keccak256(abi.encodePacked("Mint(address token,address to,uint256 amount,string txid)"));
    bytes32 public DOMAIN_SEPARATOR;

    struct Parameters {
        string name;
        string symbol;
        uint8 decimals;
    }

    bool private entered;
    Parameters public parameters;
    address public owner;
    uint256 public fee;
    address[] public signers;
    mapping (address => bool) public authorized;
    mapping (address => uint256) public indexes;
    mapping (bytes32 => bool) public used;

    event OwnerChanged(address indexed oldOwner, address indexed newOwner);

    event FeeChanged(uint256 indexed oldFee, uint256 indexed newFee);

    event BRC20Created(address indexed sender, address indexed dog20);

    event Minted(address indexed token, address indexed to, uint256 indexed amount, string txid);

    event Burned(address indexed token, address indexed from, uint256 indexed amount, uint256 fee, string receiver);
    
    event SignerAdded(address indexed sender, address indexed account);

    event SignerRemoved(address indexed sender, address indexed account);

    modifier nonReentrant() {
        require(!entered, "REENTRANT");
        entered = true;
        _;
        entered = false;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "UNAUTHORIZED");
        _;
    }

    constructor(address[] memory _signers) {
        for (uint256 i = 0; i < _signers.length; i++) {
            address _addr = _signers[i];
            signers.push(_addr);
            authorized[_addr] = true;
            indexes[_addr] = i;
        }

        owner = msg.sender;
        emit OwnerChanged(address(0), msg.sender);

        fee = 0.01 ether;

        uint256 chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(abi.encode(DOMAIN_TYPEHASH, DOMAIN_NAME, keccak256(bytes('1')), chainId, address(this)));
    }

    function createBRC20(string memory name, string memory symbol, uint8 decimals) external onlyOwner returns (address brc20) {
        parameters = Parameters({name: name, symbol: symbol, decimals: decimals});
        brc20 = address(new BRC20{salt: keccak256(abi.encode(name, symbol, decimals))}());
        delete parameters;
        emit BRC20Created(msg.sender, brc20);
    }

    function mint(address token, address to, uint256 amount, string memory txid, uint8[] memory v, bytes32[] memory r, bytes32[] memory s) external nonReentrant {
        require(v.length == signers.length, "invalid signatures");

        bytes32 digest = buildMintSeparator(token, to, amount, txid);
        require(!used[digest], "reuse");
        used[digest] = true;

        address[] memory signatures = new address[](v.length);
        for (uint256 i = 0; i < v.length; i++) {
            address signer = ecrecover(digest, v[i], r[i], s[i]);
            require(authorized[signer], "invalid signer");
            for (uint256 j = 0; j < i; j++) {
                require(signatures[j] != signer, "duplicated");
            }
            signatures[i] = signer;
        }

        BRC20(token).mint(to, amount);

        emit Minted(token, to, amount, txid);
    }

    function burn(address token, uint256 amount, string memory receiver) external payable nonReentrant {
        require(msg.value >= fee, "invalid ether");

        BRC20(token).transferFrom(msg.sender, address(this), amount);
        BRC20(token).burn(amount);

        emit Burned(token, msg.sender, amount, fee, receiver);
    }

    function withdraw(address to) external onlyOwner {
        uint256 balance = address(this).balance;
        payable(to).transfer(balance);
    }

    function setOwner(address _owner) external onlyOwner {
        emit OwnerChanged(owner, _owner);
        owner = _owner;
    }

    function setFee(uint256 _fee) external onlyOwner {
        emit FeeChanged(fee, _fee);
        fee = _fee;
    }

    function addSigner(address account) external onlyOwner {
        require(!authorized[account], "already exists");

        indexes[account] = signers.length;
        authorized[account] = true;
        signers.push(account);

        emit SignerAdded(msg.sender, account);
    }

    function removeSigner(address account) external onlyOwner {
        require(authorized[account], "non-existent");
        require(indexes[account] < signers.length, "index out of range");

        uint256 index = indexes[account];
        uint256 lastIndex = signers.length - 1;

        if (index != lastIndex) {
            address lastAddr = signers[lastIndex];
            signers[index] = lastAddr;
            indexes[lastAddr] = index;
        }

        delete authorized[account];
        delete indexes[account];
        signers.pop();

        emit SignerRemoved(msg.sender, account);
    }

    function buildMintSeparator(address token, address to, uint256 amount, string memory txid) view public returns (bytes32) {
        return keccak256(abi.encodePacked(
            '\x19\x01',
            DOMAIN_SEPARATOR,
            keccak256(abi.encode(MINT_TYPEHASH, token, to, amount, keccak256(bytes(txid))))
        ));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_signers","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"dog20","type":"address"}],"name":"BRC20Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"string","name":"receiver","type":"string"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"txid","type":"string"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SignerRemoved","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"txid","type":"string"}],"name":"buildMintSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"receiver","type":"string"}],"name":"burn","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"name":"createBRC20","outputs":[{"internalType":"address","name":"brc20","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"txid","type":"string"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"parameters","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"signers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"used","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002dc938038062002dc9833981016040819052620000349162000221565b60005b8151811015620000e7576000828281518110620000585762000058620002f3565b6020908102919091018101516007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0390931692831790556000918252600883526040808320805460ff19169092179091556009909252208290555080620000de8162000309565b91505062000037565b50600580546001600160a01b031916339081179091556040516000907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a350662386f26fc1000060065560408051808201825260018152603160f81b60209182015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f81d08e771527fc9a46630282a87b7767dfd8cafb1c6d5a0fd834215982e4c184818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012060005562000333565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200021c57600080fd5b919050565b600060208083850312156200023557600080fd5b82516001600160401b03808211156200024d57600080fd5b818501915085601f8301126200026257600080fd5b815181811115620002775762000277620001ee565b8060051b604051601f19603f830116810181811085821117156200029f576200029f620001ee565b604052918252848201925083810185019188831115620002be57600080fd5b938501935b82851015620002e757620002d78562000204565b84529385019392850192620002c3565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200032c57634e487b7160e01b600052601160045260246000fd5b5060010190565b612a8680620003436000396000f3fe6080604052600436106200012b5760003560e01c8063673199d111620000ad578063b07c411f116200006c578063b07c411f1462000367578063b918161114620003ac578063ddca3f4314620003e0578063eb12d61e14620003f8578063f76fc35e146200041d57600080fd5b8063673199d114620002ad57806369fe0e2d14620002d25780636db4e99b14620002f757806389035730146200031c5780638da5cb5b146200034557600080fd5b80632079fb9a11620000fa5780632079fb9a14620001dc5780632db78d93146200021a57806332aab8eb146200024b5780633644e515146200027057806351cff8d9146200028857600080fd5b80630e316ab7146200013057806313af4035146200015757806315f570dc146200017c57806320606b701462000193575b600080fd5b3480156200013d57600080fd5b50620001556200014f366004620013ab565b62000435565b005b3480156200016457600080fd5b506200015562000176366004620013ab565b6200067d565b620001556200018d36600462001491565b62000706565b348015620001a057600080fd5b50620001c97f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6040519081526020015b60405180910390f35b348015620001e957600080fd5b5062000201620001fb366004620014ee565b620008cf565b6040516001600160a01b039091168152602001620001d3565b3480156200022757600080fd5b50620001c962000239366004620013ab565b60096020526000908152604090205481565b3480156200025857600080fd5b50620001c96200026a36600462001508565b620008fa565b3480156200027d57600080fd5b50620001c960005481565b3480156200029557600080fd5b5062000155620002a7366004620013ab565b620009b8565b348015620002ba57600080fd5b5062000201620002cc3660046200158a565b62000a23565b348015620002df57600080fd5b5062000155620002f1366004620014ee565b62000b8a565b3480156200030457600080fd5b5062000155620003163660046200170c565b62000beb565b3480156200032957600080fd5b506200033462001009565b604051620001d39392919062001845565b3480156200035257600080fd5b5060055462000201906001600160a01b031681565b3480156200037457600080fd5b506200039b62000386366004620014ee565b600a6020526000908152604090205460ff1681565b6040519015158152602001620001d3565b348015620003b957600080fd5b506200039b620003cb366004620013ab565b60086020526000908152604090205460ff1681565b348015620003ed57600080fd5b50620001c960065481565b3480156200040557600080fd5b506200015562000417366004620013ab565b62001142565b3480156200042a57600080fd5b50620001c96200126e565b6005546001600160a01b031633146200046b5760405162461bcd60e51b8152600401620004629062001882565b60405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16620004c45760405162461bcd60e51b815260206004820152600c60248201526b1b9bdb8b595e1a5cdd195b9d60a21b604482015260640162000462565b6007546001600160a01b03821660009081526009602052604090205410620005245760405162461bcd60e51b8152602060048201526012602482015271696e646578206f7574206f662072616e676560701b604482015260640162000462565b6001600160a01b0381166000908152600960205260408120546007549091906200055190600190620018be565b9050808214620005e057600060078281548110620005735762000573620018d8565b600091825260209091200154600780546001600160a01b039092169250829185908110620005a557620005a5620018d8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559290911681526009909152604090208290555b6001600160a01b0383166000908152600860209081526040808320805460ff19169055600990915281205560078054806200061f576200061f620018ee565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385169133917f98d1ebbe00ae92a5de96a0f49742a8afa89f42363592bc2e7cfaaed68b45e7a69190a3505050565b6005546001600160a01b03163314620006aa5760405162461bcd60e51b8152600401620004629062001882565b6005546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460ff1615620007475760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff191681179055600654341015620007975760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21032ba3432b960991b604482015260640162000462565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015620007eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000811919062001904565b50604051630852cd8d60e31b8152600481018390526001600160a01b038416906342966c6890602401600060405180830381600087803b1580156200085557600080fd5b505af11580156200086a573d6000803e3d6000fd5b5050505081336001600160a01b0316846001600160a01b03167f67a4f16c43f1ae602bc49450a4dee166bb3dc5d27807220f67113b799f1cdb5060065485604051620008b892919062001928565b60405180910390a450506001805460ff1916905550565b60078181548110620008e057600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546040516020016200090f906200194b565b60408051601f198184030181528282528051602091820120865187830120918401526001600160a01b03808a169284019290925290871660608301526080820186905260a082015260c001604051602081830303815290604052805190602001206040516020016200099892919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050949350505050565b6005546001600160a01b03163314620009e55760405162461bcd60e51b8152600401620004629062001882565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801562000a1e573d6000803e3d6000fd5b505050565b6005546000906001600160a01b0316331462000a535760405162461bcd60e51b8152600401620004629062001882565b60408051606081018252858152602080820186905260ff8516928201929092528551909160029162000a8b9183919089019062001298565b50602082810151805162000aa6926001850192019062001298565b50604091820151600291909101805460ff191660ff9092169190911790555162000ad99085908590859060200162001845565b6040516020818303038152906040528051906020012060405162000afd9062001327565b8190604051809103906000f590508015801562000b1e573d6000803e3d6000fd5b5090506002600062000b31828262001335565b62000b4160018301600062001335565b50600201805460ff191690556040516001600160a01b0382169033907fcafacc4a24deda55f94fc8bf5cb205b02aee745025f72472fe3e6e38e2a8b26690600090a39392505050565b6005546001600160a01b0316331462000bb75760405162461bcd60e51b8152600401620004629062001882565b6006546040518291907f5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f190600090a3600655565b60015460ff161562000c2c5760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff19168117905560075483511462000c815760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b604482015260640162000462565b600062000c9188888888620008fa565b6000818152600a602052604090205490915060ff161562000cdd5760405162461bcd60e51b8152602060048201526005602482015264726575736560d81b604482015260640162000462565b6000818152600a60205260408120805460ff19166001179055845167ffffffffffffffff81111562000d135762000d13620013d0565b60405190808252806020026020018201604052801562000d3d578160200160208202803683370190505b50905060005b855181101562000f4157600060018488848151811062000d675762000d67620018d8565b602002602001015188858151811062000d845762000d84620018d8565b602002602001015188868151811062000da15762000da1620018d8565b60200260200101516040516000815260200160405260405162000de0949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801562000e03573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526008602052919091205490925060ff16905062000e6e5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640162000462565b60005b8281101562000efc57816001600160a01b031684828151811062000e995762000e99620018d8565b60200260200101516001600160a01b0316141562000ee75760405162461bcd60e51b815260206004820152600a602482015269191d5c1b1a58d85d195960b21b604482015260640162000462565b8062000ef3816200199a565b91505062000e71565b508083838151811062000f135762000f13620018d8565b6001600160a01b0390921660209283029190910190910152508062000f38816200199a565b91505062000d43565b506040516340c10f1960e01b81526001600160a01b038981166004830152602482018990528a16906340c10f1990604401600060405180830381600087803b15801562000f8d57600080fd5b505af115801562000fa2573d6000803e3d6000fd5b5050505086886001600160a01b03168a6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d8960405162000fec9190620019b8565b60405180910390a450506001805460ff1916905550505050505050565b6002805481906200101a90620019cd565b80601f01602080910402602001604051908101604052809291908181526020018280546200104890620019cd565b8015620010995780601f106200106d5761010080835404028352916020019162001099565b820191906000526020600020905b8154815290600101906020018083116200107b57829003601f168201915b505050505090806001018054620010b090620019cd565b80601f0160208091040260200160405190810160405280929190818152602001828054620010de90620019cd565b80156200112f5780601f1062001103576101008083540402835291602001916200112f565b820191906000526020600020905b8154815290600101906020018083116200111157829003601f168201915b5050506002909301549192505060ff1683565b6005546001600160a01b031633146200116f5760405162461bcd60e51b8152600401620004629062001882565b6001600160a01b03811660009081526008602052604090205460ff1615620011cb5760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b604482015260640162000462565b600780546001600160a01b03831660008181526009602090815260408083209490945560089052828120805460ff19166001908117909155845490810185559381527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890930180546001600160a01b031916821790559051909133917f12146497b3b826918ec47f0cac7272a09ed06b30c16c030e99ec48ff5dd60b479190a350565b6040516020016200127f906200194b565b6040516020818303038152906040528051906020012081565b828054620012a690620019cd565b90600052602060002090601f016020900481019282620012ca576000855562001315565b82601f10620012e557805160ff191683800117855562001315565b8280016001018555821562001315579182015b8281111562001315578251825591602001919060010190620012f8565b506200132392915062001377565b5090565b6110468062001a0b83390190565b5080546200134390620019cd565b6000825580601f1062001354575050565b601f01602090049060005260206000209081019062001374919062001377565b50565b5b8082111562001323576000815560010162001378565b80356001600160a01b0381168114620013a657600080fd5b919050565b600060208284031215620013be57600080fd5b620013c9826200138e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620014125762001412620013d0565b604052919050565b600082601f8301126200142c57600080fd5b813567ffffffffffffffff811115620014495762001449620013d0565b6200145e601f8201601f1916602001620013e6565b8181528460208386010111156200147457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620014a757600080fd5b620014b2846200138e565b925060208401359150604084013567ffffffffffffffff811115620014d657600080fd5b620014e4868287016200141a565b9150509250925092565b6000602082840312156200150157600080fd5b5035919050565b600080600080608085870312156200151f57600080fd5b6200152a856200138e565b93506200153a602086016200138e565b925060408501359150606085013567ffffffffffffffff8111156200155e57600080fd5b6200156c878288016200141a565b91505092959194509250565b803560ff81168114620013a657600080fd5b600080600060608486031215620015a057600080fd5b833567ffffffffffffffff80821115620015b957600080fd5b620015c7878388016200141a565b94506020860135915080821115620015de57600080fd5b50620015ed868287016200141a565b925050620015fe6040850162001578565b90509250925092565b600067ffffffffffffffff821115620016245762001624620013d0565b5060051b60200190565b600082601f8301126200164057600080fd5b8135602062001659620016538362001607565b620013e6565b82815260059290921b840181019181810190868411156200167957600080fd5b8286015b848110156200169f57620016918162001578565b83529183019183016200167d565b509695505050505050565b600082601f830112620016bc57600080fd5b81356020620016cf620016538362001607565b82815260059290921b84018101918181019086841115620016ef57600080fd5b8286015b848110156200169f5780358352918301918301620016f3565b600080600080600080600060e0888a0312156200172857600080fd5b62001733886200138e565b965062001743602089016200138e565b955060408801359450606088013567ffffffffffffffff808211156200176857600080fd5b620017768b838c016200141a565b955060808a01359150808211156200178d57600080fd5b6200179b8b838c016200162e565b945060a08a0135915080821115620017b257600080fd5b620017c08b838c01620016aa565b935060c08a0135915080821115620017d757600080fd5b50620017e68a828b01620016aa565b91505092959891949750929550565b6000815180845260005b818110156200181d57602081850181015186830182015201620017ff565b8181111562001830576000602083870101525b50601f01601f19169290920160200192915050565b6060815260006200185a6060830186620017f5565b82810360208401526200186e8186620017f5565b91505060ff83166040830152949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015620018d357620018d3620018a8565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156200191757600080fd5b81518015158114620013c957600080fd5b828152604060208201526000620019436040830184620017f5565b949350505050565b7f4d696e74286164647265737320746f6b656e2c6164647265737320746f2c756981527f6e7432353620616d6f756e742c737472696e6720747869642900000000000000602082015260390190565b6000600019821415620019b157620019b1620018a8565b5060010190565b602081526000620013c96020830184620017f5565b600181811c90821680620019e257607f821691505b6020821081141562001a0457634e487b7160e01b600052602260045260246000fd5b5091905056fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200007b9190810190620002e6565b60ff8116608052815160009081906200009c90600190602087019062000173565b50508351620000b19190602086019062000173565b50503360a052505060405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000ee90600090620003a8565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f198184030181529190528051602090910120600655506200044c565b82805462000181906200036b565b90600052602060002090601f016020900481019282620001a55760008555620001f0565b82601f10620001c057805160ff1916838001178555620001f0565b82800160010185558215620001f0579182015b82811115620001f0578251825591602001919060010190620001d3565b50620001fe92915062000202565b5090565b5b80821115620001fe576000815560010162000203565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024157600080fd5b81516001600160401b03808211156200025e576200025e62000219565b604051601f8301601f19908116603f0116810190828211818310171562000289576200028962000219565b81604052838152602092508683858801011115620002a657600080fd5b600091505b83821015620002ca5785820183015181830184015290820190620002ab565b83821115620002dc5760008385830101525b9695505050505050565b600080600060608486031215620002fc57600080fd5b83516001600160401b03808211156200031457600080fd5b62000322878388016200022f565b945060208601519150808211156200033957600080fd5b5062000348868287016200022f565b925050604084015160ff811681146200036057600080fd5b809150509250925092565b600181811c908216806200038057607f821691505b60208210811415620003a257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620003c557607f831692505b6020808410821415620003e657634e487b7160e01b86526022600452602486fd5b818015620003fd57600181146200040f576200043e565b60ff198616895284890196506200043e565b60008a81526020902060005b86811015620004365781548b8201529085019083016200041b565b505084890196505b509498975050505050505050565b60805160a051610bc66200048060003960008181610293015281816104f0015261056a015260006101ce0152610bc66000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b4114610273578063a9059cbb1461027b578063c45a01551461028e578063d505accf146102cd578063dd62ed3e146102e057600080fd5b806340c10f191461020b57806342966c681461022057806370a08231146102335780637ecebe001461025357600080fd5b806323b872dd116100de57806323b872dd1461018f57806330adf81f146101a2578063313ce567146101c95780633644e5151461020257600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806320606b7014610168575b600080fd5b61011861030b565b6040516101259190610938565b60405180910390f35b61014161013c3660046109a9565b610399565b6040519015158152602001610125565b61015a60025481565b604051908152602001610125565b61015a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b61014161019d3660046109d3565b610405565b61015a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6101f07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610125565b61015a60065481565b61021e6102193660046109a9565b6104e5565b005b61021e61022e366004610a0f565b61055f565b61015a610241366004610a28565b60036020526000908152604090205481565b61015a610261366004610a28565b60056020526000908152604090205481565b6101186105d3565b6101416102893660046109a9565b6105e0565b6102b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610125565b61021e6102db366004610a4a565b610646565b61015a6102ee366004610abd565b600460209081526000928352604080842090915290825290205481565b6000805461031890610af0565b80601f016020809104026020016040519081016040528092919081815260200182805461034490610af0565b80156103915780601f1061036657610100808354040283529160200191610391565b820191906000526020600020905b81548152906001019060200180831161037457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f49086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146104615761043c8382610b41565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610489908490610b41565b90915550506001600160a01b0380851660008181526003602052604090819020805487019055519091871690600080516020610b71833981519152906104d29087815260200190565b60405180910390a3506001949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105515760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b61055b828261087c565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610548565b6105d033826108d6565b50565b6001805461031890610af0565b33600090815260036020526040812080548391908390610601908490610b41565b90915550506001600160a01b03831660008181526003602052604090819020805485019055513390600080516020610b71833981519152906103f49086815260200190565b428410156106805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b6044820152606401610548565b6006546001600160a01b0388811660008181526005602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561079b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107d15750886001600160a01b0316816001600160a01b0316145b6108115760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610548565b6001600160a01b0390811660009081526004602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b806002600082825461088e9190610b58565b90915550506001600160a01b038216600081815260036020908152604080832080548601905551848152600080516020610b7183398151915291015b60405180910390a35050565b6001600160a01b038216600090815260036020526040812080548392906108fe908490610b41565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020610b71833981519152906020016108ca565b600060208083528351808285015260005b8181101561096557858101830151858201604001528201610949565b81811115610977576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b6109c58361098d565b946020939093013593505050565b6000806000606084860312156109e857600080fd5b6109f18461098d565b92506109ff6020850161098d565b9150604084013590509250925092565b600060208284031215610a2157600080fd5b5035919050565b600060208284031215610a3a57600080fd5b610a438261098d565b9392505050565b600080600080600080600060e0888a031215610a6557600080fd5b610a6e8861098d565b9650610a7c6020890161098d565b95506040880135945060608801359350608088013560ff81168114610aa057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ad057600080fd5b610ad98361098d565b9150610ae76020840161098d565b90509250929050565b600181811c90821680610b0457607f821691505b60208210811415610b2557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610b5357610b53610b2b565b500390565b60008219821115610b6b57610b6b610b2b565b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd970baf35e6ee350dce926148c16dab64454197f76b517f1450206554d0a6c664736f6c634300080c0033a2646970667358221220b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e17664736f6c634300080c0033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e

Deployed Bytecode

0x6080604052600436106200012b5760003560e01c8063673199d111620000ad578063b07c411f116200006c578063b07c411f1462000367578063b918161114620003ac578063ddca3f4314620003e0578063eb12d61e14620003f8578063f76fc35e146200041d57600080fd5b8063673199d114620002ad57806369fe0e2d14620002d25780636db4e99b14620002f757806389035730146200031c5780638da5cb5b146200034557600080fd5b80632079fb9a11620000fa5780632079fb9a14620001dc5780632db78d93146200021a57806332aab8eb146200024b5780633644e515146200027057806351cff8d9146200028857600080fd5b80630e316ab7146200013057806313af4035146200015757806315f570dc146200017c57806320606b701462000193575b600080fd5b3480156200013d57600080fd5b50620001556200014f366004620013ab565b62000435565b005b3480156200016457600080fd5b506200015562000176366004620013ab565b6200067d565b620001556200018d36600462001491565b62000706565b348015620001a057600080fd5b50620001c97f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6040519081526020015b60405180910390f35b348015620001e957600080fd5b5062000201620001fb366004620014ee565b620008cf565b6040516001600160a01b039091168152602001620001d3565b3480156200022757600080fd5b50620001c962000239366004620013ab565b60096020526000908152604090205481565b3480156200025857600080fd5b50620001c96200026a36600462001508565b620008fa565b3480156200027d57600080fd5b50620001c960005481565b3480156200029557600080fd5b5062000155620002a7366004620013ab565b620009b8565b348015620002ba57600080fd5b5062000201620002cc3660046200158a565b62000a23565b348015620002df57600080fd5b5062000155620002f1366004620014ee565b62000b8a565b3480156200030457600080fd5b5062000155620003163660046200170c565b62000beb565b3480156200032957600080fd5b506200033462001009565b604051620001d39392919062001845565b3480156200035257600080fd5b5060055462000201906001600160a01b031681565b3480156200037457600080fd5b506200039b62000386366004620014ee565b600a6020526000908152604090205460ff1681565b6040519015158152602001620001d3565b348015620003b957600080fd5b506200039b620003cb366004620013ab565b60086020526000908152604090205460ff1681565b348015620003ed57600080fd5b50620001c960065481565b3480156200040557600080fd5b506200015562000417366004620013ab565b62001142565b3480156200042a57600080fd5b50620001c96200126e565b6005546001600160a01b031633146200046b5760405162461bcd60e51b8152600401620004629062001882565b60405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16620004c45760405162461bcd60e51b815260206004820152600c60248201526b1b9bdb8b595e1a5cdd195b9d60a21b604482015260640162000462565b6007546001600160a01b03821660009081526009602052604090205410620005245760405162461bcd60e51b8152602060048201526012602482015271696e646578206f7574206f662072616e676560701b604482015260640162000462565b6001600160a01b0381166000908152600960205260408120546007549091906200055190600190620018be565b9050808214620005e057600060078281548110620005735762000573620018d8565b600091825260209091200154600780546001600160a01b039092169250829185908110620005a557620005a5620018d8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559290911681526009909152604090208290555b6001600160a01b0383166000908152600860209081526040808320805460ff19169055600990915281205560078054806200061f576200061f620018ee565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385169133917f98d1ebbe00ae92a5de96a0f49742a8afa89f42363592bc2e7cfaaed68b45e7a69190a3505050565b6005546001600160a01b03163314620006aa5760405162461bcd60e51b8152600401620004629062001882565b6005546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460ff1615620007475760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff191681179055600654341015620007975760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21032ba3432b960991b604482015260640162000462565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015620007eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000811919062001904565b50604051630852cd8d60e31b8152600481018390526001600160a01b038416906342966c6890602401600060405180830381600087803b1580156200085557600080fd5b505af11580156200086a573d6000803e3d6000fd5b5050505081336001600160a01b0316846001600160a01b03167f67a4f16c43f1ae602bc49450a4dee166bb3dc5d27807220f67113b799f1cdb5060065485604051620008b892919062001928565b60405180910390a450506001805460ff1916905550565b60078181548110620008e057600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546040516020016200090f906200194b565b60408051601f198184030181528282528051602091820120865187830120918401526001600160a01b03808a169284019290925290871660608301526080820186905260a082015260c001604051602081830303815290604052805190602001206040516020016200099892919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050949350505050565b6005546001600160a01b03163314620009e55760405162461bcd60e51b8152600401620004629062001882565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801562000a1e573d6000803e3d6000fd5b505050565b6005546000906001600160a01b0316331462000a535760405162461bcd60e51b8152600401620004629062001882565b60408051606081018252858152602080820186905260ff8516928201929092528551909160029162000a8b9183919089019062001298565b50602082810151805162000aa6926001850192019062001298565b50604091820151600291909101805460ff191660ff9092169190911790555162000ad99085908590859060200162001845565b6040516020818303038152906040528051906020012060405162000afd9062001327565b8190604051809103906000f590508015801562000b1e573d6000803e3d6000fd5b5090506002600062000b31828262001335565b62000b4160018301600062001335565b50600201805460ff191690556040516001600160a01b0382169033907fcafacc4a24deda55f94fc8bf5cb205b02aee745025f72472fe3e6e38e2a8b26690600090a39392505050565b6005546001600160a01b0316331462000bb75760405162461bcd60e51b8152600401620004629062001882565b6006546040518291907f5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f190600090a3600655565b60015460ff161562000c2c5760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff19168117905560075483511462000c815760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b604482015260640162000462565b600062000c9188888888620008fa565b6000818152600a602052604090205490915060ff161562000cdd5760405162461bcd60e51b8152602060048201526005602482015264726575736560d81b604482015260640162000462565b6000818152600a60205260408120805460ff19166001179055845167ffffffffffffffff81111562000d135762000d13620013d0565b60405190808252806020026020018201604052801562000d3d578160200160208202803683370190505b50905060005b855181101562000f4157600060018488848151811062000d675762000d67620018d8565b602002602001015188858151811062000d845762000d84620018d8565b602002602001015188868151811062000da15762000da1620018d8565b60200260200101516040516000815260200160405260405162000de0949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801562000e03573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526008602052919091205490925060ff16905062000e6e5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640162000462565b60005b8281101562000efc57816001600160a01b031684828151811062000e995762000e99620018d8565b60200260200101516001600160a01b0316141562000ee75760405162461bcd60e51b815260206004820152600a602482015269191d5c1b1a58d85d195960b21b604482015260640162000462565b8062000ef3816200199a565b91505062000e71565b508083838151811062000f135762000f13620018d8565b6001600160a01b0390921660209283029190910190910152508062000f38816200199a565b91505062000d43565b506040516340c10f1960e01b81526001600160a01b038981166004830152602482018990528a16906340c10f1990604401600060405180830381600087803b15801562000f8d57600080fd5b505af115801562000fa2573d6000803e3d6000fd5b5050505086886001600160a01b03168a6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d8960405162000fec9190620019b8565b60405180910390a450506001805460ff1916905550505050505050565b6002805481906200101a90620019cd565b80601f01602080910402602001604051908101604052809291908181526020018280546200104890620019cd565b8015620010995780601f106200106d5761010080835404028352916020019162001099565b820191906000526020600020905b8154815290600101906020018083116200107b57829003601f168201915b505050505090806001018054620010b090620019cd565b80601f0160208091040260200160405190810160405280929190818152602001828054620010de90620019cd565b80156200112f5780601f1062001103576101008083540402835291602001916200112f565b820191906000526020600020905b8154815290600101906020018083116200111157829003601f168201915b5050506002909301549192505060ff1683565b6005546001600160a01b031633146200116f5760405162461bcd60e51b8152600401620004629062001882565b6001600160a01b03811660009081526008602052604090205460ff1615620011cb5760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b604482015260640162000462565b600780546001600160a01b03831660008181526009602090815260408083209490945560089052828120805460ff19166001908117909155845490810185559381527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890930180546001600160a01b031916821790559051909133917f12146497b3b826918ec47f0cac7272a09ed06b30c16c030e99ec48ff5dd60b479190a350565b6040516020016200127f906200194b565b6040516020818303038152906040528051906020012081565b828054620012a690620019cd565b90600052602060002090601f016020900481019282620012ca576000855562001315565b82601f10620012e557805160ff191683800117855562001315565b8280016001018555821562001315579182015b8281111562001315578251825591602001919060010190620012f8565b506200132392915062001377565b5090565b6110468062001a0b83390190565b5080546200134390620019cd565b6000825580601f1062001354575050565b601f01602090049060005260206000209081019062001374919062001377565b50565b5b8082111562001323576000815560010162001378565b80356001600160a01b0381168114620013a657600080fd5b919050565b600060208284031215620013be57600080fd5b620013c9826200138e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620014125762001412620013d0565b604052919050565b600082601f8301126200142c57600080fd5b813567ffffffffffffffff811115620014495762001449620013d0565b6200145e601f8201601f1916602001620013e6565b8181528460208386010111156200147457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620014a757600080fd5b620014b2846200138e565b925060208401359150604084013567ffffffffffffffff811115620014d657600080fd5b620014e4868287016200141a565b9150509250925092565b6000602082840312156200150157600080fd5b5035919050565b600080600080608085870312156200151f57600080fd5b6200152a856200138e565b93506200153a602086016200138e565b925060408501359150606085013567ffffffffffffffff8111156200155e57600080fd5b6200156c878288016200141a565b91505092959194509250565b803560ff81168114620013a657600080fd5b600080600060608486031215620015a057600080fd5b833567ffffffffffffffff80821115620015b957600080fd5b620015c7878388016200141a565b94506020860135915080821115620015de57600080fd5b50620015ed868287016200141a565b925050620015fe6040850162001578565b90509250925092565b600067ffffffffffffffff821115620016245762001624620013d0565b5060051b60200190565b600082601f8301126200164057600080fd5b8135602062001659620016538362001607565b620013e6565b82815260059290921b840181019181810190868411156200167957600080fd5b8286015b848110156200169f57620016918162001578565b83529183019183016200167d565b509695505050505050565b600082601f830112620016bc57600080fd5b81356020620016cf620016538362001607565b82815260059290921b84018101918181019086841115620016ef57600080fd5b8286015b848110156200169f5780358352918301918301620016f3565b600080600080600080600060e0888a0312156200172857600080fd5b62001733886200138e565b965062001743602089016200138e565b955060408801359450606088013567ffffffffffffffff808211156200176857600080fd5b620017768b838c016200141a565b955060808a01359150808211156200178d57600080fd5b6200179b8b838c016200162e565b945060a08a0135915080821115620017b257600080fd5b620017c08b838c01620016aa565b935060c08a0135915080821115620017d757600080fd5b50620017e68a828b01620016aa565b91505092959891949750929550565b6000815180845260005b818110156200181d57602081850181015186830182015201620017ff565b8181111562001830576000602083870101525b50601f01601f19169290920160200192915050565b6060815260006200185a6060830186620017f5565b82810360208401526200186e8186620017f5565b91505060ff83166040830152949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015620018d357620018d3620018a8565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156200191757600080fd5b81518015158114620013c957600080fd5b828152604060208201526000620019436040830184620017f5565b949350505050565b7f4d696e74286164647265737320746f6b656e2c6164647265737320746f2c756981527f6e7432353620616d6f756e742c737472696e6720747869642900000000000000602082015260390190565b6000600019821415620019b157620019b1620018a8565b5060010190565b602081526000620013c96020830184620017f5565b600181811c90821680620019e257607f821691505b6020821081141562001a0457634e487b7160e01b600052602260045260246000fd5b5091905056fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200007b9190810190620002e6565b60ff8116608052815160009081906200009c90600190602087019062000173565b50508351620000b19190602086019062000173565b50503360a052505060405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000ee90600090620003a8565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f198184030181529190528051602090910120600655506200044c565b82805462000181906200036b565b90600052602060002090601f016020900481019282620001a55760008555620001f0565b82601f10620001c057805160ff1916838001178555620001f0565b82800160010185558215620001f0579182015b82811115620001f0578251825591602001919060010190620001d3565b50620001fe92915062000202565b5090565b5b80821115620001fe576000815560010162000203565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024157600080fd5b81516001600160401b03808211156200025e576200025e62000219565b604051601f8301601f19908116603f0116810190828211818310171562000289576200028962000219565b81604052838152602092508683858801011115620002a657600080fd5b600091505b83821015620002ca5785820183015181830184015290820190620002ab565b83821115620002dc5760008385830101525b9695505050505050565b600080600060608486031215620002fc57600080fd5b83516001600160401b03808211156200031457600080fd5b62000322878388016200022f565b945060208601519150808211156200033957600080fd5b5062000348868287016200022f565b925050604084015160ff811681146200036057600080fd5b809150509250925092565b600181811c908216806200038057607f821691505b60208210811415620003a257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620003c557607f831692505b6020808410821415620003e657634e487b7160e01b86526022600452602486fd5b818015620003fd57600181146200040f576200043e565b60ff198616895284890196506200043e565b60008a81526020902060005b86811015620004365781548b8201529085019083016200041b565b505084890196505b509498975050505050505050565b60805160a051610bc66200048060003960008181610293015281816104f0015261056a015260006101ce0152610bc66000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b4114610273578063a9059cbb1461027b578063c45a01551461028e578063d505accf146102cd578063dd62ed3e146102e057600080fd5b806340c10f191461020b57806342966c681461022057806370a08231146102335780637ecebe001461025357600080fd5b806323b872dd116100de57806323b872dd1461018f57806330adf81f146101a2578063313ce567146101c95780633644e5151461020257600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806320606b7014610168575b600080fd5b61011861030b565b6040516101259190610938565b60405180910390f35b61014161013c3660046109a9565b610399565b6040519015158152602001610125565b61015a60025481565b604051908152602001610125565b61015a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b61014161019d3660046109d3565b610405565b61015a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6101f07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610125565b61015a60065481565b61021e6102193660046109a9565b6104e5565b005b61021e61022e366004610a0f565b61055f565b61015a610241366004610a28565b60036020526000908152604090205481565b61015a610261366004610a28565b60056020526000908152604090205481565b6101186105d3565b6101416102893660046109a9565b6105e0565b6102b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610125565b61021e6102db366004610a4a565b610646565b61015a6102ee366004610abd565b600460209081526000928352604080842090915290825290205481565b6000805461031890610af0565b80601f016020809104026020016040519081016040528092919081815260200182805461034490610af0565b80156103915780601f1061036657610100808354040283529160200191610391565b820191906000526020600020905b81548152906001019060200180831161037457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f49086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146104615761043c8382610b41565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610489908490610b41565b90915550506001600160a01b0380851660008181526003602052604090819020805487019055519091871690600080516020610b71833981519152906104d29087815260200190565b60405180910390a3506001949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105515760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b61055b828261087c565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610548565b6105d033826108d6565b50565b6001805461031890610af0565b33600090815260036020526040812080548391908390610601908490610b41565b90915550506001600160a01b03831660008181526003602052604090819020805485019055513390600080516020610b71833981519152906103f49086815260200190565b428410156106805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b6044820152606401610548565b6006546001600160a01b0388811660008181526005602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561079b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107d15750886001600160a01b0316816001600160a01b0316145b6108115760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610548565b6001600160a01b0390811660009081526004602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b806002600082825461088e9190610b58565b90915550506001600160a01b038216600081815260036020908152604080832080548601905551848152600080516020610b7183398151915291015b60405180910390a35050565b6001600160a01b038216600090815260036020526040812080548392906108fe908490610b41565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020610b71833981519152906020016108ca565b600060208083528351808285015260005b8181101561096557858101830151858201604001528201610949565b81811115610977576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b6109c58361098d565b946020939093013593505050565b6000806000606084860312156109e857600080fd5b6109f18461098d565b92506109ff6020850161098d565b9150604084013590509250925092565b600060208284031215610a2157600080fd5b5035919050565b600060208284031215610a3a57600080fd5b610a438261098d565b9392505050565b600080600080600080600060e0888a031215610a6557600080fd5b610a6e8861098d565b9650610a7c6020890161098d565b95506040880135945060608801359350608088013560ff81168114610aa057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ad057600080fd5b610ad98361098d565b9150610ae76020840161098d565b90509250929050565b600181811c90821680610b0457607f821691505b60208210811415610b2557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610b5357610b53610b2b565b500390565b60008219821115610b6b57610b6b610b2b565b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd970baf35e6ee350dce926148c16dab64454197f76b517f1450206554d0a6c664736f6c634300080c0033a2646970667358221220b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e17664736f6c634300080c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e

-----Decoded View---------------
Arg [0] : _signers (address[]): 0x9e19b52caA8c86568b2d2B43E981CAF4bE1dD67E,0xb87f548Fe0CfD057605E6c59283c8BD436554006,0xa998f18Fb5FE798a8f85574362Eb9cAd9204b43E

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [2] : 0000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e
Arg [3] : 000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006
Arg [4] : 000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e


Deployed Bytecode Sourcemap

3891:5570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8496:619;;;;;;;;;;-1:-1:-1;8496:619:0;;;;;:::i;:::-;;:::i;:::-;;7942:129;;;;;;;;;;-1:-1:-1;7942:129:0;;;;;:::i;:::-;;:::i;7444:335::-;;;;;;:::i;:::-;;:::i;3990:137::-;;;;;;;;;;;;4032:95;3990:137;;;;;1946:25:1;;;1934:2;1919:18;3990:137:0;;;;;;;;4528:24;;;;;;;;;;-1:-1:-1;4528:24:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2331:32:1;;;2313:51;;2301:2;2286:18;4528:24:0;2167:203:1;4609:43:0;;;;;;;;;;-1:-1:-1;4609:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;9123:335;;;;;;;;;;-1:-1:-1;9123:335:0;;;;;:::i;:::-;;:::i;4269:31::-;;;;;;;;;;;;;;;;7787:147;;;;;;;;;;-1:-1:-1;7787:147:0;;;;;:::i;:::-;;:::i;6160:381::-;;;;;;;;;;-1:-1:-1;6160:381:0;;;;;:::i;:::-;;:::i;8079:115::-;;;;;;;;;;-1:-1:-1;8079:115:0;;;;;:::i;:::-;;:::i;6549:887::-;;;;;;;;;;-1:-1:-1;6549:887:0;;;;;:::i;:::-;;:::i;4441:28::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;4476:20::-;;;;;;;;;;-1:-1:-1;4476:20:0;;;;-1:-1:-1;;;;;4476:20:0;;;4659:37;;;;;;;;;;-1:-1:-1;4659:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7933:14:1;;7926:22;7908:41;;7896:2;7881:18;4659:37:0;7768:187:1;4559:43:0;;;;;;;;;;-1:-1:-1;4559:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4503:18;;;;;;;;;;;;;;;;8202:286;;;;;;;;;;-1:-1:-1;8202:286:0;;;;;:::i;:::-;;:::i;4134:128::-;;;;;;;;;;;;;:::i;8496:619::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8573:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;8565:44;;;::::0;-1:-1:-1;;;8565:44:0;;8503:2:1;8565:44:0::1;::::0;::::1;8485:21:1::0;8542:2;8522:18;;;8515:30;-1:-1:-1;;;8561:18:1;;;8554:42;8613:18;;8565:44:0::1;8301:336:1::0;8565:44:0::1;8647:7;:14:::0;-1:-1:-1;;;;;8628:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:33:::1;8620:64;;;::::0;-1:-1:-1;;;8620:64:0;;8844:2:1;8620:64:0::1;::::0;::::1;8826:21:1::0;8883:2;8863:18;;;8856:30;-1:-1:-1;;;8902:18:1;;;8895:48;8960:18;;8620:64:0::1;8642:342:1::0;8620:64:0::1;-1:-1:-1::0;;;;;8713:16:0;::::1;8697:13;8713:16:::0;;;:7:::1;:16;::::0;;;;;8760:7:::1;:14:::0;8713:16;;8697:13;8760:18:::1;::::0;8777:1:::1;::::0;8760:18:::1;:::i;:::-;8740:38;;8804:9;8795:5;:18;8791:168;;8830:16;8849:7;8857:9;8849:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;8882:7:::1;:14:::0;;-1:-1:-1;;;;;8849:18:0;;::::1;::::0;-1:-1:-1;8849:18:0;;8890:5;;8882:14;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:25:::0;;-1:-1:-1;;;;;;8882:25:0::1;-1:-1:-1::0;;;;;8882:25:0;;::::1;;::::0;;8922:17;;;::::1;::::0;;:7:::1;:17:::0;;;;;;:25;;;8791:168:::1;-1:-1:-1::0;;;;;8978:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;;;8971:26;;-1:-1:-1;;8971:26:0::1;::::0;;9015:7:::1;:16:::0;;;;;9008:23;9042:7:::1;:13:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9042:13:0;;;;;-1:-1:-1;;;;;;9042:13:0::1;::::0;;;;;;;;9073:34:::1;::::0;-1:-1:-1;;;;;9073:34:0;::::1;::::0;9087:10:::1;::::0;9073:34:::1;::::0;9042:13;9073:34:::1;8554:561;;8496:619:::0;:::o;7942:129::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;8024:5:::1;::::0;8011:27:::1;::::0;-1:-1:-1;;;;;8011:27:0;;::::1;::::0;8024:5:::1;::::0;8011:27:::1;::::0;8024:5:::1;::::0;8011:27:::1;8049:5;:14:::0;;-1:-1:-1;;;;;;8049:14:0::1;-1:-1:-1::0;;;;;8049:14:0;;;::::1;::::0;;;::::1;::::0;;7942:129::o;7444:335::-;5352:7;;;;5351:8;5343:30;;;;-1:-1:-1;;;5343:30:0;;9717:2:1;5343:30:0;;;9699:21:1;9756:1;9736:18;;;9729:29;-1:-1:-1;;;9774:18:1;;;9767:39;9823:18;;5343:30:0;9515:332:1;5343:30:0;5394:4;5384:14;;-1:-1:-1;;5384:14:0;;;;;7575:3:::1;::::0;7562:9:::1;:16;;7554:42;;;::::0;-1:-1:-1;;;7554:42:0;;10054:2:1;7554:42:0::1;::::0;::::1;10036:21:1::0;10093:2;10073:18;;;10066:30;-1:-1:-1;;;10112:18:1;;;10105:43;10165:18;;7554:42:0::1;9852:337:1::0;7554:42:0::1;7609:60;::::0;-1:-1:-1;;;7609:60:0;;7635:10:::1;7609:60;::::0;::::1;10434:34:1::0;7655:4:0::1;10484:18:1::0;;;10477:43;10536:18;;;10529:34;;;-1:-1:-1;;;;;7609:25:0;::::1;::::0;::::1;::::0;10369:18:1;;7609:60:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7680:25:0::1;::::0;-1:-1:-1;;;7680:25:0;;::::1;::::0;::::1;1946::1::0;;;-1:-1:-1;;;;;7680:17:0;::::1;::::0;::::1;::::0;1919:18:1;;7680:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7749:6;7737:10;-1:-1:-1::0;;;;;7723:48:0::1;7730:5;-1:-1:-1::0;;;;;7723:48:0::1;;7757:3;;7762:8;7723:48;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;5421:7:0;:15;;-1:-1:-1;;5421:15:0;;;-1:-1:-1;7444:335:0:o;4528:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4528:24:0;;-1:-1:-1;4528:24:0;:::o;9123:335::-;9235:7;9328:16;;4184:77;;;;;;;:::i;:::-;;;;-1:-1:-1;;4184:77:0;;;;;;;;;4174:88;;4184:77;4174:88;;;;9414:22;;;;;;9369:68;;;11757:25:1;-1:-1:-1;;;;;11856:15:1;;;11836:18;;;11829:43;;;;11908:15;;;11888:18;;;11881:43;11940:18;;;11933:34;;;11983:19;;;11976:35;11729:19;;9369:68:0;;;;;;;;;;;;9359:79;;;;;;9272:177;;;;;;;;-1:-1:-1;;;12280:27:1;;12332:1;12323:11;;12316:27;;;;12368:2;12359:12;;12352:28;12405:2;12396:12;;12022:392;9272:177:0;;;;;;;;;;;;;9262:188;;;;;;9255:195;;9123:335;;;;;;:::o;7787:147::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;7897:29:::1;::::0;7865:21:::1;::::0;-1:-1:-1;;;;;7897:20:0;::::1;::::0;:29;::::1;;;::::0;7865:21;;7847:15:::1;7897:29:::0;7847:15;7897:29;7865:21;7897:20;:29;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7836:98;7787:147:::0;:::o;6160:381::-;5506:5;;6267:13;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;6306:60:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;6293:73;;6306:60;;6293:10:::1;::::0;:73:::1;::::0;:10;;:73;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;6293:73:0::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;6293:73:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;6293:73:0::1;;::::0;;::::1;::::0;;;::::1;::::0;;6419:34;::::1;::::0;6430:4;;6436:6;;6444:8;;6419:34:::1;;;:::i;:::-;;;;;;;;;;;;;6409:45;;;;;;6393:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6377:81:0;-1:-1:-1;6476:10:0::1;;6469:17;6476:10:::0;;6469:17:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;6469:17:0::1;;::::0;;-1:-1:-1;;6469:17:0::1;::::0;;6502:31:::1;::::0;-1:-1:-1;;;;;6502:31:0;::::1;::::0;6515:10:::1;::::0;6502:31:::1;::::0;6469:17:::1;::::0;6502:31:::1;6160:381:::0;;;;;:::o;8079:115::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;8155:3:::1;::::0;8144:21:::1;::::0;8160:4;;8155:3;8144:21:::1;::::0;;;::::1;8176:3;:10:::0;8079:115::o;6549:887::-;5352:7;;;;5351:8;5343:30;;;;-1:-1:-1;;;5343:30:0;;9717:2:1;5343:30:0;;;9699:21:1;9756:1;9736:18;;;9729:29;-1:-1:-1;;;9774:18:1;;;9767:39;9823:18;;5343:30:0;9515:332:1;5343:30:0;5394:4;5384:14;;-1:-1:-1;;5384:14:0;;;;;6737:7:::1;:14:::0;6725:8;;:26:::1;6717:57;;;::::0;-1:-1:-1;;;6717:57:0;;12621:2:1;6717:57:0::1;::::0;::::1;12603:21:1::0;12660:2;12640:18;;;12633:30;-1:-1:-1;;;12679:18:1;;;12672:48;12737:18;;6717:57:0::1;12419:342:1::0;6717:57:0::1;6787:14;6804:43;6823:5;6830:2;6834:6;6842:4;6804:18;:43::i;:::-;6867:12;::::0;;;:4:::1;:12;::::0;;;;;6787:60;;-1:-1:-1;6867:12:0::1;;6866:13;6858:31;;;::::0;-1:-1:-1;;;6858:31:0;;12968:2:1;6858:31:0::1;::::0;::::1;12950:21:1::0;13007:1;12987:18;;;12980:29;-1:-1:-1;;;13025:18:1;;;13018:35;13070:18;;6858:31:0::1;12766:328:1::0;6858:31:0::1;6900:12;::::0;;;:4:::1;:12;::::0;;;;:19;;-1:-1:-1;;6900:19:0::1;6915:4;6900:19;::::0;;6976:8;;6962:23:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;6962:23:0::1;;6932:53;;7001:9;6996:342;7020:1;:8;7016:1;:12;6996:342;;;7050:14;7067:35;7077:6;7085:1;7087;7085:4;;;;;;;;:::i;:::-;;;;;;;7091:1;7093;7091:4;;;;;;;;:::i;:::-;;;;;;;7097:1;7099;7097:4;;;;;;;;:::i;:::-;;;;;;;7067:35;;;;;;;;;;;;;;;;;13326:25:1::0;;;13399:4;13387:17;;;;13382:2;13367:18;;13360:45;13436:2;13421:18;;13414:34;13479:2;13464:18;;13457:34;13313:3;13298:19;;13099:398;7067:35:0::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7067:35:0::1;::::0;;-1:-1:-1;;7067:35:0;;-1:-1:-1;;;;;7125:18:0;::::1;;::::0;;;:10:::1;7067:35;7125:18:::0;;;;;;7067:35;;-1:-1:-1;7125:18:0::1;;::::0;-1:-1:-1;7117:45:0::1;;;::::0;-1:-1:-1;;;7117:45:0;;13704:2:1;7117:45:0::1;::::0;::::1;13686:21:1::0;13743:2;13723:18;;;13716:30;-1:-1:-1;;;13762:18:1;;;13755:44;13816:18;;7117:45:0::1;13502:338:1::0;7117:45:0::1;7182:9;7177:113;7201:1;7197;:5;7177:113;;;7253:6;-1:-1:-1::0;;;;;7236:23:0::1;:10;7247:1;7236:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7236:23:0::1;;;7228:46;;;::::0;-1:-1:-1;;;7228:46:0;;14047:2:1;7228:46:0::1;::::0;::::1;14029:21:1::0;14086:2;14066:18;;;14059:30;-1:-1:-1;;;14105:18:1;;;14098:40;14155:18;;7228:46:0::1;13845:334:1::0;7228:46:0::1;7204:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7177:113;;;;7320:6;7304:10;7315:1;7304:13;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7304:22:0;;::::1;:13;::::0;;::::1;::::0;;;;;;;:22;-1:-1:-1;7030:3:0;::::1;::::0;::::1;:::i;:::-;;;;6996:342;;;-1:-1:-1::0;7350:29:0::1;::::0;-1:-1:-1;;;7350:29:0;;-1:-1:-1;;;;;14516:32:1;;;7350:29:0::1;::::0;::::1;14498:51:1::0;14565:18;;;14558:34;;;7350:17:0;::::1;::::0;::::1;::::0;14471:18:1;;7350:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7415:6;7411:2;-1:-1:-1::0;;;;;7397:31:0::1;7404:5;-1:-1:-1::0;;;;;7397:31:0::1;;7423:4;7397:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;5421:7:0;:15;;-1:-1:-1;;5421:15:0;;;-1:-1:-1;;;;;;;6549:887:0:o;4441:28::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4441:28:0;;;;;;;-1:-1:-1;;4441:28:0;;;:::o;8202:286::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8277:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;8276:20;8268:47;;;::::0;-1:-1:-1;;;8268:47:0;;15415:2:1;8268:47:0::1;::::0;::::1;15397:21:1::0;15454:2;15434:18;;;15427:30;-1:-1:-1;;;15473:18:1;;;15466:44;15527:18;;8268:47:0::1;15213:338:1::0;8268:47:0::1;8347:7;:14:::0;;-1:-1:-1;;;;;8328:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:33;;;;8372:10:::1;:19:::0;;;;;:26;;-1:-1:-1;;8372:26:0::1;8394:4;8372:26:::0;;::::1;::::0;;;8409:21;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8409:21:0::1;::::0;::::1;::::0;;8448:32;;8328:16;;8460:10:::1;::::0;8448:32:::1;::::0;8328:16;8448:32:::1;8202:286:::0;:::o;4134:128::-;4184:77;;;;;;;:::i;:::-;;;;;;;;;;;;;4174:88;;;;;;4134:128;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:127::-;444:10;439:3;435:20;432:1;425:31;475:4;472:1;465:15;499:4;496:1;489:15;515:275;586:2;580:9;651:2;632:13;;-1:-1:-1;;628:27:1;616:40;;686:18;671:34;;707:22;;;668:62;665:88;;;733:18;;:::i;:::-;769:2;762:22;515:275;;-1:-1:-1;515:275:1:o;795:531::-;838:5;891:3;884:4;876:6;872:17;868:27;858:55;;909:1;906;899:12;858:55;945:6;932:20;971:18;967:2;964:26;961:52;;;993:18;;:::i;:::-;1037:55;1080:2;1061:13;;-1:-1:-1;;1057:27:1;1086:4;1053:38;1037:55;:::i;:::-;1117:2;1108:7;1101:19;1163:3;1156:4;1151:2;1143:6;1139:15;1135:26;1132:35;1129:55;;;1180:1;1177;1170:12;1129:55;1245:2;1238:4;1230:6;1226:17;1219:4;1210:7;1206:18;1193:55;1293:1;1268:16;;;1286:4;1264:27;1257:38;;;;1272:7;795:531;-1:-1:-1;;;795:531:1:o;1331:464::-;1418:6;1426;1434;1487:2;1475:9;1466:7;1462:23;1458:32;1455:52;;;1503:1;1500;1493:12;1455:52;1526:29;1545:9;1526:29;:::i;:::-;1516:39;;1602:2;1591:9;1587:18;1574:32;1564:42;;1657:2;1646:9;1642:18;1629:32;1684:18;1676:6;1673:30;1670:50;;;1716:1;1713;1706:12;1670:50;1739;1781:7;1772:6;1761:9;1757:22;1739:50;:::i;:::-;1729:60;;;1331:464;;;;;:::o;1982:180::-;2041:6;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;-1:-1:-1;2133:23:1;;1982:180;-1:-1:-1;1982:180:1:o;2557:539::-;2653:6;2661;2669;2677;2730:3;2718:9;2709:7;2705:23;2701:33;2698:53;;;2747:1;2744;2737:12;2698:53;2770:29;2789:9;2770:29;:::i;:::-;2760:39;;2818:38;2852:2;2841:9;2837:18;2818:38;:::i;:::-;2808:48;;2903:2;2892:9;2888:18;2875:32;2865:42;;2958:2;2947:9;2943:18;2930:32;2985:18;2977:6;2974:30;2971:50;;;3017:1;3014;3007:12;2971:50;3040;3082:7;3073:6;3062:9;3058:22;3040:50;:::i;:::-;3030:60;;;2557:539;;;;;;;:::o;3101:156::-;3167:20;;3227:4;3216:16;;3206:27;;3196:55;;3247:1;3244;3237:12;3262:613;3357:6;3365;3373;3426:2;3414:9;3405:7;3401:23;3397:32;3394:52;;;3442:1;3439;3432:12;3394:52;3482:9;3469:23;3511:18;3552:2;3544:6;3541:14;3538:34;;;3568:1;3565;3558:12;3538:34;3591:50;3633:7;3624:6;3613:9;3609:22;3591:50;:::i;:::-;3581:60;;3694:2;3683:9;3679:18;3666:32;3650:48;;3723:2;3713:8;3710:16;3707:36;;;3739:1;3736;3729:12;3707:36;;3762:52;3806:7;3795:8;3784:9;3780:24;3762:52;:::i;:::-;3752:62;;;3833:36;3865:2;3854:9;3850:18;3833:36;:::i;:::-;3823:46;;3262:613;;;;;:::o;3880:181::-;3938:4;3971:18;3963:6;3960:30;3957:56;;;3993:18;;:::i;:::-;-1:-1:-1;4038:1:1;4034:14;4050:4;4030:25;;3880:181::o;4066:662::-;4118:5;4171:3;4164:4;4156:6;4152:17;4148:27;4138:55;;4189:1;4186;4179:12;4138:55;4225:6;4212:20;4251:4;4275:58;4291:41;4329:2;4291:41;:::i;:::-;4275:58;:::i;:::-;4367:15;;;4453:1;4449:10;;;;4437:23;;4433:32;;;4398:12;;;;4477:15;;;4474:35;;;4505:1;4502;4495:12;4474:35;4541:2;4533:6;4529:15;4553:146;4569:6;4564:3;4561:15;4553:146;;;4635:21;4652:3;4635:21;:::i;:::-;4623:34;;4677:12;;;;4586;;4553:146;;;-1:-1:-1;4717:5:1;4066:662;-1:-1:-1;;;;;;4066:662:1:o;4733:660::-;4787:5;4840:3;4833:4;4825:6;4821:17;4817:27;4807:55;;4858:1;4855;4848:12;4807:55;4894:6;4881:20;4920:4;4944:58;4960:41;4998:2;4960:41;:::i;4944:58::-;5036:15;;;5122:1;5118:10;;;;5106:23;;5102:32;;;5067:12;;;;5146:15;;;5143:35;;;5174:1;5171;5164:12;5143:35;5210:2;5202:6;5198:15;5222:142;5238:6;5233:3;5230:15;5222:142;;;5304:17;;5292:30;;5342:12;;;;5255;;5222:142;;5398:1237;5594:6;5602;5610;5618;5626;5634;5642;5695:3;5683:9;5674:7;5670:23;5666:33;5663:53;;;5712:1;5709;5702:12;5663:53;5735:29;5754:9;5735:29;:::i;:::-;5725:39;;5783:38;5817:2;5806:9;5802:18;5783:38;:::i;:::-;5773:48;;5868:2;5857:9;5853:18;5840:32;5830:42;;5923:2;5912:9;5908:18;5895:32;5946:18;5987:2;5979:6;5976:14;5973:34;;;6003:1;6000;5993:12;5973:34;6026:50;6068:7;6059:6;6048:9;6044:22;6026:50;:::i;:::-;6016:60;;6129:3;6118:9;6114:19;6101:33;6085:49;;6159:2;6149:8;6146:16;6143:36;;;6175:1;6172;6165:12;6143:36;6198:61;6251:7;6240:8;6229:9;6225:24;6198:61;:::i;:::-;6188:71;;6312:3;6301:9;6297:19;6284:33;6268:49;;6342:2;6332:8;6329:16;6326:36;;;6358:1;6355;6348:12;6326:36;6381:63;6436:7;6425:8;6414:9;6410:24;6381:63;:::i;:::-;6371:73;;6497:3;6486:9;6482:19;6469:33;6453:49;;6527:2;6517:8;6514:16;6511:36;;;6543:1;6540;6533:12;6511:36;;6566:63;6621:7;6610:8;6599:9;6595:24;6566:63;:::i;:::-;6556:73;;;5398:1237;;;;;;;;;;:::o;6640:472::-;6682:3;6720:5;6714:12;6747:6;6742:3;6735:19;6772:1;6782:162;6796:6;6793:1;6790:13;6782:162;;;6858:4;6914:13;;;6910:22;;6904:29;6886:11;;;6882:20;;6875:59;6811:12;6782:162;;;6962:6;6959:1;6956:13;6953:87;;;7028:1;7021:4;7012:6;7007:3;7003:16;6999:27;6992:38;6953:87;-1:-1:-1;7094:2:1;7073:15;-1:-1:-1;;7069:29:1;7060:39;;;;7101:4;7056:50;;6640:472;-1:-1:-1;;6640:472:1:o;7117:461::-;7338:2;7327:9;7320:21;7301:4;7364:45;7405:2;7394:9;7390:18;7382:6;7364:45;:::i;:::-;7457:9;7449:6;7445:22;7440:2;7429:9;7425:18;7418:50;7485:33;7511:6;7503;7485:33;:::i;:::-;7477:41;;;7566:4;7558:6;7554:17;7549:2;7538:9;7534:18;7527:45;7117:461;;;;;;:::o;7960:336::-;8162:2;8144:21;;;8201:2;8181:18;;;8174:30;-1:-1:-1;;;8235:2:1;8220:18;;8213:42;8287:2;8272:18;;7960:336::o;8989:127::-;9050:10;9045:3;9041:20;9038:1;9031:31;9081:4;9078:1;9071:15;9105:4;9102:1;9095:15;9121:125;9161:4;9189:1;9186;9183:8;9180:34;;;9194:18;;:::i;:::-;-1:-1:-1;9231:9:1;;9121:125::o;9251:127::-;9312:10;9307:3;9303:20;9300:1;9293:31;9343:4;9340:1;9333:15;9367:4;9364:1;9357:15;9383:127;9444:10;9439:3;9435:20;9432:1;9425:31;9475:4;9472:1;9465:15;9499:4;9496:1;9489:15;10574:277;10641:6;10694:2;10682:9;10673:7;10669:23;10665:32;10662:52;;;10710:1;10707;10700:12;10662:52;10742:9;10736:16;10795:5;10788:13;10781:21;10774:5;10771:32;10761:60;;10817:1;10814;10807:12;10856:291;11033:6;11022:9;11015:25;11076:2;11071;11060:9;11056:18;11049:30;10996:4;11096:45;11137:2;11126:9;11122:18;11114:6;11096:45;:::i;:::-;11088:53;10856:291;-1:-1:-1;;;;10856:291:1:o;11152:341::-;11366:34;11354:47;;11431:27;11426:2;11417:12;;11410:49;11484:2;11475:12;;11152:341::o;14184:135::-;14223:3;-1:-1:-1;;14244:17:1;;14241:43;;;14264:18;;:::i;:::-;-1:-1:-1;14311:1:1;14300:13;;14184:135::o;14603:220::-;14752:2;14741:9;14734:21;14715:4;14772:45;14813:2;14802:9;14798:18;14790:6;14772:45;:::i;14828:380::-;14907:1;14903:12;;;;14950;;;14971:61;;15025:4;15017:6;15013:17;15003:27;;14971:61;15078:2;15070:6;15067:14;15047:18;15044:38;15041:161;;;15124:10;15119:3;15115:20;15112:1;15105:31;15159:4;15156:1;15149:15;15187:4;15184:1;15177:15;15041:161;;14828:380;;;:::o

Swarm Source

ipfs://b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e176

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.