ETH Price: $3,568.87 (+1.30%)
Gas: 60 Gwei

Contract

0xECf1624E155b022d36602b384402DfF439D4D6AF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer103307032020-06-24 20:42:461372 days ago1593031366IN
0xECf1624E...439D4D6AF
0 ETH0.0011835949
Transfer103307032020-06-24 20:42:461372 days ago1593031366IN
0xECf1624E...439D4D6AF
0 ETH0.00118349
Transfer103277022020-06-24 9:37:401373 days ago1592991460IN
0xECf1624E...439D4D6AF
0 ETH0.0010386643.00000123
Transfer103276952020-06-24 9:36:361373 days ago1592991396IN
0xECf1624E...439D4D6AF
0 ETH0.0010622944.00000145
Transfer103276722020-06-24 9:30:251373 days ago1592991025IN
0xECf1624E...439D4D6AF
0 ETH0.0023286643.00000145
Transfer103269322020-06-24 6:50:371373 days ago1592981437IN
0xECf1624E...439D4D6AF
0 ETH0.0023828244.00000145
Transfer103084092020-06-21 9:54:301376 days ago1592733270IN
0xECf1624E...439D4D6AF
0 ETH0.000833815.4
Transfer103084092020-06-21 9:54:301376 days ago1592733270IN
0xECf1624E...439D4D6AF
0 ETH0.000833815.4
Transfer103084092020-06-21 9:54:301376 days ago1592733270IN
0xECf1624E...439D4D6AF
0 ETH0.000833815.4
Transfer103084072020-06-21 9:54:221376 days ago1592733262IN
0xECf1624E...439D4D6AF
0 ETH0.0008662816
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.000833815.4
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0008336115.4
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.000833815.4
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0008121415
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0008121415
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0008121415
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0005519114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0005519114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083582020-06-21 9:41:221376 days ago1592732482IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
Transfer103083542020-06-21 9:40:451376 days ago1592732445IN
0xECf1624E...439D4D6AF
0 ETH0.0007634114.1
View all transactions

Advanced mode:
Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IPCMToken

Compiler Version
v0.6.1+commit.e6f7d5a4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-04-26
*/

pragma solidity ^0.6.1;


/**

 * @dev IPCM锁仓解锁合约 Author: [email protected], Date:2020/04

 */

contract IPCMToken {
    using SafeMath for uint256;

    string public constant name = "InterPlanetary Continuous Media"; //  token name
    string public constant symbol = "IPCM"; //  token symbol
    uint256 public decimals = 18; //  token digit

    uint256 public totalSupply_; // 已经发行总量
    uint256 public _maxSupply = 100000000 * 10**uint256(decimals); //最大发行总量

    address owner = address(0); //合约所有者

    event Transfer(address indexed from, address indexed to, uint256 value); // 交易事件

    /**

  * @dev 接受解锁转账的账户地址

  */
  
    uint256 public unit_first = 1 days;
    uint256 public unit_second = 365 days;

    address public addr_pool = 0x44a16F5Ec33c845AB10343F8Cae4093b6c028ccB; //矿池挖矿
    address public addr_private = 0x970603FaD5d239070593D33772451A533d2c3C5E; //私募
    address public addr_fund = 0xf4c0ee2707Da59bf57effE9Ee3034Bed18718EF5; //基金会
    address public addr_promotion = 0x2D6b8F56E40296c251A88509f7Be00E97bCE27e7; //推广运营
    address public addr_team = 0x27e57a6dFCF442f1cAC135285A7434E8de364cA5; //原始团队
    

    mapping(address => uint256) balances; // 余额

    /** Reserve allocations */
    mapping(address => uint256) public allocations; // 每个地址对应锁仓金额的映射表

    /** When timeLocks are over (UNIX Timestamp) */
    mapping(address => uint256) public timeLocks; // 每个地址对应锁仓时间的映射表

    /** How many tokens each reserve wallet has claimed */
    mapping(address => uint256) public claimed; // 每个地址对应锁仓后已经解锁的金额的映射表

    /** When token was locked (UNIX Timestamp)*/
    uint256 public lockedAt = 0;

    /** Allocated reserve tokens */
    event Allocated(address wallet, uint256 value);

    /** Distributed reserved tokens */
    event Distributed(address wallet, uint256 value);

    /** Tokens have been locked */
    event Locked(uint256 lockTime);

    modifier isOwner {
        assert(owner == msg.sender);
        _;
    }

    // 合约调用者的地址为接受解锁转账的账户地址的其中之一
    modifier onlyReserveWallets {
        require(
            msg.sender == addr_pool ||
                msg.sender == addr_private ||
                msg.sender == addr_fund ||
                msg.sender == addr_promotion ||
                msg.sender == addr_team
        );
        require(allocations[msg.sender] > 0);

        _;
    }

    constructor() public {
        owner = msg.sender;
        allocate();
    }

    /**

 * @dev total number of tokens in existence

 */

    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    /**

 * @dev Gets the balance of the specified address.

 * @param _owner The address to query the the balance of.

 * @return An uint256 representing the amount owned by the passed address.

 */

    function balanceOf(address _owner) public view returns (uint256) {
        require(_owner != address(0));

        //账户余额
        return balances[_owner];
    }

    function maxSupply() public view returns (uint256) {
        return _maxSupply;
    }

    //私有方法从一个帐户发送给另一个帐户代币
    function _transfer(address _from, address _to, uint256 _value) internal {
        require(_value > 0);

        //避免转帐的地址是0x0
        require(_to != address(0));

        //检查发送者是否拥有足够余额
        require(balances[_from].sub(_value) >= 0);

        //检查是否溢出
        require(balances[_to].add(_value) > balances[_to]);

        //从发送者减掉发送额
        balances[_from] = balances[_from].sub(_value);

        //给接收者加上相同的量
        balances[_to] = balances[_to].add(_value);

        emit Transfer(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value)
        public
        returns (bool success)
    {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    //设定各个账号的token初始分配量和锁仓量
    function allocate() internal {
        balances[addr_private] = 1500000 * 10**uint256(decimals);
        balances[addr_fund] = 1500000 * 10**uint256(decimals);
        totalSupply_ = totalSupply_.add(balances[addr_private]);
        totalSupply_ = totalSupply_.add(balances[addr_fund]);

        emit Transfer(address(0), addr_private, balances[addr_private]);
        emit Transfer(address(0), addr_fund, balances[addr_fund]);

        allocations[addr_pool] = 50000000 * 10**uint256(decimals);
        allocations[addr_private] = 13500000 * 10**uint256(decimals);
        allocations[addr_fund] = 13500000 * 10**uint256(decimals);
        allocations[addr_promotion] = 10000000 * 10**uint256(decimals);
        allocations[addr_team] = 10000000 * 10**uint256(decimals);

        emit Allocated(addr_pool, allocations[addr_pool]);
        emit Allocated(addr_private, allocations[addr_private]);
        emit Allocated(addr_fund, allocations[addr_fund]);
        emit Allocated(addr_promotion, allocations[addr_promotion]);
        emit Allocated(addr_team, allocations[addr_team]);

        lock();
    }

    //设定各个账号的锁仓时间截止期限
    function lock() internal {
        lockedAt = block.timestamp; // 区块当前时间

        uint256 next_year = ((lockedAt / (unit_second)) + 1) * (unit_second);
        uint256 third_year = ((lockedAt / (unit_second)) + 2) * (unit_second);

        timeLocks[addr_pool] = lockedAt;
        timeLocks[addr_private] = next_year;
        timeLocks[addr_promotion] = lockedAt;
        timeLocks[addr_fund] = next_year;
        timeLocks[addr_team] = third_year;

        emit Locked(lockedAt);
    }

    // Number of tokens that are still locked
    function getLockedBalance()
        public
        view
        onlyReserveWallets
        returns (uint256 tokensLocked)
    {
        return allocations[msg.sender].sub(claimed[msg.sender]);
    }

    //释放矿池挖矿收益
    function claimToken() public onlyReserveWallets {
        if (msg.sender == addr_pool) claimToken_Pool();
        else if (msg.sender == addr_private) claimToken_Private();
        else if (msg.sender == addr_fund) claimToken_Fund();
        else if (msg.sender == addr_promotion) claimToken_Promotion();
        else if (msg.sender == addr_team) claimToken_Team();
    }

    //释放矿池挖矿收益,50%50,000,000,第一年每天解锁50,000,第二年每天解锁25,000,每年减半以此类推
    function claimToken_Pool() public {
        address addr_claim = addr_pool;
        uint256 time_now = block.timestamp;

        require(addr_claim == msg.sender);

        //是否已过锁仓时间期限
        require(time_now > timeLocks[addr_claim]);
        //已经释放的总量是否小于总的计划分配数量
        require(claimed[addr_claim] < allocations[addr_claim]);

        uint256 amnt_unit = 50000* 10**uint256(decimals);
        uint256 span_years = (time_now / (unit_second)) -
            (timeLocks[addr_claim] / (unit_second));
        uint256 claim_cnt = 0;
        

        //计算到目前为止所有应该释放token总量
        for (uint256 i = 0; i <= span_years; i++) {
            uint256 amnt_day = amnt_unit / (2**i);

            if (i == 0) //开始年份
            {
                uint256 span_days;

                if(span_years<1)
                    span_days = ((time_now - timeLocks[addr_claim]) /
            (unit_first)) + 1;
                else
                    span_days = (unit_second/unit_first) -
                    (timeLocks[addr_claim] % (unit_second)) /
                    (unit_first);

                claim_cnt = claim_cnt.add(amnt_day * span_days);

            } else if (i < span_years) //中间年份
            {
                claim_cnt = claim_cnt.add(amnt_day * (unit_second/unit_first));
            } else if (i == span_years) {
                //当前年份
                uint256 span_days = (time_now % (unit_second)) / (unit_first) + 1;
                claim_cnt = claim_cnt.add(amnt_day * span_days);
            }
        }
       
        if(claim_cnt > allocations[addr_claim])
            claim_cnt = allocations[addr_claim];

        if (
            claimed[addr_claim] < claim_cnt
        ) //将前面所有应该释放但还未释放的token全部解锁发放
        {
            uint256 amount = claim_cnt.sub(claimed[addr_claim]);
            balances[addr_claim] = balances[addr_claim].add(amount);
            claimed[addr_claim] = claim_cnt;
            totalSupply_ = totalSupply_.add(amount);

            emit Transfer(address(0), addr_claim, amount);
            emit Distributed(addr_claim, amount);
        }
    }

    //释放私募收益,15%15,000,000;1,500,000立即释放,次年起剩余13,500,000每天释放10,000
    function claimToken_Private() public {
        address addr_claim = addr_private;
        uint256 time_now = block.timestamp;

        require(addr_claim == msg.sender);

        //是否已过锁仓时间期限
        require(time_now > timeLocks[addr_claim]);

        //已经释放的总量是否小于总的计划分配数量
        require(claimed[addr_claim] < allocations[addr_claim]);
        uint256 amnt_unit = 10000* 10**uint256(decimals);
        uint256 span_days = ((time_now - timeLocks[addr_claim]) / (unit_first)) + 1;
        uint256 claim_cnt = span_days.mul(amnt_unit);

        if(claim_cnt > allocations[addr_claim])
            claim_cnt = allocations[addr_claim];

        if (
            claimed[addr_claim] < claim_cnt
        ) //将前面所有应该释放但还未释放的token全部解锁发放
        {
            uint256 amount = claim_cnt.sub(claimed[addr_claim]);
            balances[addr_claim] = balances[addr_claim].add(amount);
            claimed[addr_claim] = claim_cnt;
            totalSupply_ = totalSupply_.add(amount);

            emit Transfer(address(0), addr_claim, amount);
            emit Distributed(addr_claim, amount);
        }
    }

    //释放基金会收益,15%15,000,000;1,500,000立即释放,次年起剩余13,500,000每天释放10,000
    function claimToken_Fund() public {
        address addr_claim = addr_fund;
        uint256 time_now = block.timestamp;

        require(addr_claim == msg.sender);

        //是否已过锁仓时间期限
        require(time_now > timeLocks[addr_claim]);

        //已经释放的总量是否小于总的计划分配数量
        require(claimed[addr_claim] < allocations[addr_claim]);

        uint256 amnt_unit = 10000* 10**uint256(decimals);
        uint256 span_days = ((time_now - timeLocks[addr_claim]) / (unit_first)) + 1;
        uint256 claim_cnt = span_days.mul(amnt_unit);

        if(claim_cnt > allocations[addr_claim])
            claim_cnt = allocations[addr_claim];

        if (
            claimed[addr_claim] < claim_cnt
        ) //将前面所有应该释放但还未释放的token全部解锁发放
        {
            uint256 amount = claim_cnt.sub(claimed[addr_claim]);
            balances[addr_claim] = balances[addr_claim].add(amount);
            claimed[addr_claim] = claim_cnt;
            totalSupply_ = totalSupply_.add(amount);

            emit Transfer(address(0), addr_claim, amount);
            emit Distributed(addr_claim, amount);
        }
    }

    //释放推广运营收益,10%10,000,000 每天解锁20,000
    function claimToken_Promotion() public {
        address addr_claim = addr_promotion;
        uint256 time_now = block.timestamp;

        require(addr_claim == msg.sender);

        //是否已过锁仓时间期限
        require(time_now > timeLocks[addr_claim]);

        //已经释放的总量是否小于总的计划分配数量
        require(claimed[addr_claim] < allocations[addr_claim]);

        uint256 amnt_unit = 20000* 10**uint256(decimals);
        uint256 span_days = ((time_now - timeLocks[addr_claim]) / (unit_first)) + 1;
        uint256 claim_cnt = span_days.mul(amnt_unit);

        if(claim_cnt > allocations[addr_claim])
            claim_cnt = allocations[addr_claim];

        if (
            claimed[addr_claim] < claim_cnt
        ) //将前面所有应该释放但还未释放的token全部解锁发放
        {
            uint256 amount = claim_cnt.sub(claimed[addr_claim]);
            balances[addr_claim] = balances[addr_claim].add(amount);
            claimed[addr_claim] = claim_cnt;
            totalSupply_ = totalSupply_.add(amount);

            emit Transfer(address(0), addr_claim, amount);
            emit Distributed(addr_claim, amount);
        }
    }

    //释放原始团队收益,10%10,000,000锁仓两年,第三年开始每天释放20,000
    function claimToken_Team() public {
        address addr_claim = addr_team;
        uint256 time_now = block.timestamp;

        require(addr_claim == msg.sender);

        //是否已过锁仓时间期限
        require(time_now > timeLocks[addr_claim]);

        //已经释放的总量是否小于总的计划分配数量
        require(claimed[addr_claim] < allocations[addr_claim]);

        uint256 amnt_unit = 20000* 10**uint256(decimals);
        uint256 span_days = ((time_now - timeLocks[addr_claim]) / (unit_first)) + 1;
        uint256 claim_cnt = span_days.mul(amnt_unit);

        if(claim_cnt > allocations[addr_claim])
            claim_cnt = allocations[addr_claim];

        if (
            claimed[addr_claim] < claim_cnt
        ) //将前面所有应该释放但还未释放的token全部解锁发放
        {
            uint256 amount = claim_cnt.sub(claimed[addr_claim]);
            balances[addr_claim] = balances[addr_claim].add(amount);
            claimed[addr_claim] = claim_cnt;
            totalSupply_ = totalSupply_.add(amount);

            emit Transfer(address(0), addr_claim, amount);
            emit Distributed(addr_claim, amount);
        }
    }
}


library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Allocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lockTime","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr_fund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr_pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr_private","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr_promotion","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr_team","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allocations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken_Fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken_Pool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken_Private","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken_Promotion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimToken_Team","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLockedBalance","outputs":[{"internalType":"uint256","name":"tokensLocked","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeLocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unit_first","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unit_second","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526012600055600054600a0a6305f5e100026002556000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620151806004556301e133806005557344a16f5ec33c845ab10343f8cae4093b6c028ccb600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073970603fad5d239070593d33772451a533d2c3c5e600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f4c0ee2707da59bf57effe9ee3034bed18718ef5600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732d6b8f56e40296c251a88509f7be00e97bce27e7600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327e57a6dfcf442f1cac135285a7434e8de364ca5600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f553480156200022457600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002766200027c60201b60201c565b62000fb4565b600054600a0a6216e36002600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600054600a0a6216e36002600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003d9600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460015462000d1d60201b620029251790919060201c565b6001819055506200045c600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460015462000d1d60201b620029251790919060201c565b600181905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600054600a0a6302faf08002600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600054600a0a62cdfe6002600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600054600a0a62cdfe6002600c6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600054600a0a6298968002600c6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600054600a0a6298968002600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a162000d1b62000d3a60201b60201c565b565b60008082840190508381101562000d3057fe5b8091505092915050565b42600f8190555060006005546001600554600f548162000d5657fe5b040102905060006005546002600554600f548162000d7057fe5b0401029050600f54600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f54600d6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600d6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600d6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a1611600f546040518082815260200191505060405180910390a15050565b612c4d8062000fc46000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806368117a6a116100f9578063b0b60e6611610097578063c662bf2a11610071578063c662bf2a14610658578063c884ef83146106a2578063d5abeb01146106fa578063dab54ef414610718576101a9565b8063b0b60e66146105e6578063b2163482146105f0578063b661df851461060e576101a9565b80637f76b223116100d35780637f76b22314610487578063934f6a73146104df57806395d89b41146104fd578063a9059cbb14610580576101a9565b806368117a6a1461041b57806370a08231146104255780637de9af941461047d576101a9565b80632afe9b6c11610166578063366ea17a11610140578063366ea17a146103255780634451d89f1461036f57806350b8b7751461037957806352a9039c146103c3576101a9565b80632afe9b6c146102df578063313ce567146102e9578063324536eb14610307576101a9565b806306fdde03146101ae5780630956aa74146102315780631539df241461027b57806318160ddd1461028557806322f4596f146102a35780632549e0b1146102c1575b600080fd5b6101b6610736565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023961076f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610283610795565b005b61028d610c3b565b6040518082815260200191505060405180910390f35b6102ab610c45565b6040518082815260200191505060405180910390f35b6102c9610c4b565b6040518082815260200191505060405180910390f35b6102e7610ee9565b005b6102f1611514565b6040518082815260200191505060405180910390f35b61030f61151a565b6040518082815260200191505060405180910390f35b61032d611520565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610377611546565b005b61038161193d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610405600480360360208110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b6040518082815260200191505060405180910390f35b61042361197b565b005b6104676004803603602081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e21565b6040518082815260200191505060405180910390f35b610485611ea3565b005b6104c96004803603602081101561049d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612349565b6040518082815260200191505060405180910390f35b6104e7612361565b6040518082815260200191505060405180910390f35b610505612367565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054557808201518184015260208101905061052a565b50505050905090810190601f1680156105725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105cc6004803603604081101561059657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123a0565b604051808215151515815260200191505060405180910390f35b6105ee6123b7565b005b6105f861285d565b6040518082815260200191505060405180910390f35b610616612863565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610660612889565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106e4600480360360208110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128af565b6040518082815260200191505060405180910390f35b6107026128c7565b6040518082815260200191505060405180910390f35b6107206128d1565b6040518082815260200191505060405180910390f35b6040518060400160405280601f81526020017f496e746572506c616e657461727920436f6e74696e756f7573204d656469610081525081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146107f957600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161084457600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106108ce57600080fd5b60008054600a0a61271002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161092b57fe5b04019050600061094483836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156109d057600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c34576000610a6b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b9050610abf81600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b5b8160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b6000600154905090565b60025481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cf65750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610d4e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610da65750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610dfe5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e0757600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e5357600080fd5b610ee4600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f4d57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111610f9857600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061102257600080fd5b60008054600a0a61c3500290506000600554600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161107b57fe5b04600554848161108757fe5b04039050600080905060008090505b82811161121e5760008160020a85816110ab57fe5b049050600082141561119e5760006001851015611119576001600454600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489038161111057fe5b04019050611181565b600454600554600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161116657fe5b068161116e57fe5b046004546005548161117c57fe5b040390505b6111968183028561292590919063ffffffff16565b935050611210565b838210156111cf576111c8600454600554816111b657fe5b0482028461292590919063ffffffff16565b925061120f565b8382141561120e576000600160045460055489816111e957fe5b06816111f157fe5b0401905061120a8183028561292590919063ffffffff16565b9350505b5b5b508080600101915050611096565b50600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156112a957600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561150d576000611344600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b905061139881600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114348160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b60005481565b60015481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115ef5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116475750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061169f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116f75750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61170057600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161174c57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156117af576117aa610ee9565b61193b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118125761180d611ea3565b61193a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561187557611870610795565b611939565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118d8576118d36123b7565b611938565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156119375761193661197b565b5b5b5b5b5b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915090505481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119df57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111611a2a57600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ab457600080fd5b60008054600a0a614e2002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054850381611b1157fe5b040190506000611b2a83836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115611bb657600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e1a576000611c51600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b9050611ca581600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d418160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e5c57600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f0757600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111611f5257600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611fdc57600080fd5b60008054600a0a61271002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161203957fe5b04019050600061205283836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156120de57600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612342576000612179600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b90506121cd81600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122698160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b600d6020528060005260406000206000915090505481565b60055481565b6040518060400160405280600481526020017f4950434d0000000000000000000000000000000000000000000000000000000081525081565b60006123ad338484612941565b6001905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461241b57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161246657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106124f057600080fd5b60008054600a0a614e2002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161254d57fe5b04019050600061256683836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156125f257600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561285657600061268d600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b90506126e181600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277d8160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b6000600254905090565b60045481565b6000808314156128ea5760009050612908565b60008284029050828482816128fb57fe5b041461290357fe5b809150505b92915050565b60008282111561291a57fe5b818303905092915050565b60008082840190508381101561293757fe5b8091505092915050565b6000811161294e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561298857600080fd5b60006129dc82600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b10156129e757600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7982600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b11612a8357600080fd5b612ad581600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a81600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fea26469706673582212201ca791bfd8b9bc65c41d7cec6f15311448048dd745375ca7d83e954e76fe7bd864736f6c63430006010033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806368117a6a116100f9578063b0b60e6611610097578063c662bf2a11610071578063c662bf2a14610658578063c884ef83146106a2578063d5abeb01146106fa578063dab54ef414610718576101a9565b8063b0b60e66146105e6578063b2163482146105f0578063b661df851461060e576101a9565b80637f76b223116100d35780637f76b22314610487578063934f6a73146104df57806395d89b41146104fd578063a9059cbb14610580576101a9565b806368117a6a1461041b57806370a08231146104255780637de9af941461047d576101a9565b80632afe9b6c11610166578063366ea17a11610140578063366ea17a146103255780634451d89f1461036f57806350b8b7751461037957806352a9039c146103c3576101a9565b80632afe9b6c146102df578063313ce567146102e9578063324536eb14610307576101a9565b806306fdde03146101ae5780630956aa74146102315780631539df241461027b57806318160ddd1461028557806322f4596f146102a35780632549e0b1146102c1575b600080fd5b6101b6610736565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023961076f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610283610795565b005b61028d610c3b565b6040518082815260200191505060405180910390f35b6102ab610c45565b6040518082815260200191505060405180910390f35b6102c9610c4b565b6040518082815260200191505060405180910390f35b6102e7610ee9565b005b6102f1611514565b6040518082815260200191505060405180910390f35b61030f61151a565b6040518082815260200191505060405180910390f35b61032d611520565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610377611546565b005b61038161193d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610405600480360360208110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b6040518082815260200191505060405180910390f35b61042361197b565b005b6104676004803603602081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e21565b6040518082815260200191505060405180910390f35b610485611ea3565b005b6104c96004803603602081101561049d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612349565b6040518082815260200191505060405180910390f35b6104e7612361565b6040518082815260200191505060405180910390f35b610505612367565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054557808201518184015260208101905061052a565b50505050905090810190601f1680156105725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105cc6004803603604081101561059657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123a0565b604051808215151515815260200191505060405180910390f35b6105ee6123b7565b005b6105f861285d565b6040518082815260200191505060405180910390f35b610616612863565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610660612889565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106e4600480360360208110156106b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128af565b6040518082815260200191505060405180910390f35b6107026128c7565b6040518082815260200191505060405180910390f35b6107206128d1565b6040518082815260200191505060405180910390f35b6040518060400160405280601f81526020017f496e746572506c616e657461727920436f6e74696e756f7573204d656469610081525081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146107f957600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161084457600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106108ce57600080fd5b60008054600a0a61271002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161092b57fe5b04019050600061094483836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156109d057600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c34576000610a6b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b9050610abf81600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b5b8160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b6000600154905090565b60025481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cf65750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610d4e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610da65750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610dfe5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e0757600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e5357600080fd5b610ee4600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f4d57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111610f9857600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061102257600080fd5b60008054600a0a61c3500290506000600554600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161107b57fe5b04600554848161108757fe5b04039050600080905060008090505b82811161121e5760008160020a85816110ab57fe5b049050600082141561119e5760006001851015611119576001600454600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489038161111057fe5b04019050611181565b600454600554600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161116657fe5b068161116e57fe5b046004546005548161117c57fe5b040390505b6111968183028561292590919063ffffffff16565b935050611210565b838210156111cf576111c8600454600554816111b657fe5b0482028461292590919063ffffffff16565b925061120f565b8382141561120e576000600160045460055489816111e957fe5b06816111f157fe5b0401905061120a8183028561292590919063ffffffff16565b9350505b5b5b508080600101915050611096565b50600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156112a957600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561150d576000611344600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b905061139881600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114348160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b60005481565b60015481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115ef5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116475750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061169f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116f75750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61170057600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161174c57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156117af576117aa610ee9565b61193b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118125761180d611ea3565b61193a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561187557611870610795565b611939565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118d8576118d36123b7565b611938565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156119375761193661197b565b5b5b5b5b5b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915090505481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119df57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111611a2a57600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ab457600080fd5b60008054600a0a614e2002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054850381611b1157fe5b040190506000611b2a83836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115611bb657600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e1a576000611c51600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b9050611ca581600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d418160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e5c57600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f0757600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111611f5257600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611fdc57600080fd5b60008054600a0a61271002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161203957fe5b04019050600061205283836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156120de57600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612342576000612179600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b90506121cd81600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122698160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b600d6020528060005260406000206000915090505481565b60055481565b6040518060400160405280600481526020017f4950434d0000000000000000000000000000000000000000000000000000000081525081565b60006123ad338484612941565b6001905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060004290503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461241b57600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161246657600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106124f057600080fd5b60008054600a0a614e2002905060006001600454600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485038161254d57fe5b04019050600061256683836128d790919063ffffffff16565b9050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156125f257600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561285657600061268d600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361290e90919063ffffffff16565b90506126e181600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277d8160015461292590919063ffffffff16565b6001819055508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505b5050505050565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b6000600254905090565b60045481565b6000808314156128ea5760009050612908565b60008284029050828482816128fb57fe5b041461290357fe5b809150505b92915050565b60008282111561291a57fe5b818303905092915050565b60008082840190508381101561293757fe5b8091505092915050565b6000811161294e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561298857600080fd5b60006129dc82600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b10156129e757600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7982600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b11612a8357600080fd5b612ad581600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290e90919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a81600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292590919063ffffffff16565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fea26469706673582212201ca791bfd8b9bc65c41d7cec6f15311448048dd745375ca7d83e954e76fe7bd864736f6c63430006010033

Deployed Bytecode Sourcemap

121:14387:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;121:14387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;182:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10647:1223;;;:::i;:::-;;2834:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;438:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6117:205;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6882:2295;;;:::i;:::-;;329:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;382:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1099:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6362:377;;;:::i;:::-;;923:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1381:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1381:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13282:1223;;;:::i;:::-;;3144:173;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3144:173:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9297:1227;;;:::i;:::-;;1535:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1535:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;786:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;267:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;267:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4118:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4118:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11945:1233;;;:::i;:::-;;1859:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1011:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1694:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1694:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3325:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;745:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;182:63;;;;;;;;;;;;;;;;;;;:::o;832:69::-;;;;;;;;;;;;;:::o;10647:1223::-;10692:18;10713:9;;;;;;;;;;;10692:30;;10733:16;10752:15;10733:34;;10802:10;10788:24;;:10;:24;;;10780:33;;;;;;10887:9;:21;10897:10;10887:21;;;;;;;;;;;;;;;;10876:8;:32;10868:41;;;;;;11021:11;:23;11033:10;11021:23;;;;;;;;;;;;;;;;10999:7;:19;11007:10;10999:19;;;;;;;;;;;;;;;;:45;10991:54;;;;;;11058:17;11097:8;;11085:2;:21;11078:5;:28;11058:48;;11117:17;11191:1;11176:10;;11150:9;:21;11160:10;11150:21;;;;;;;;;;;;;;;;11139:8;:32;11138:49;;;;;;11137:55;11117:75;;11203:17;11223:24;11237:9;11223;:13;;:24;;;;:::i;:::-;11203:44;;11275:11;:23;11287:10;11275:23;;;;;;;;;;;;;;;;11263:9;:35;11260:88;;;11325:11;:23;11337:10;11325:23;;;;;;;;;;;;;;;;11313:35;;11260:88;11401:9;11379:7;:19;11387:10;11379:19;;;;;;;;;;;;;;;;:31;11361:502;;;11517:14;11534:34;11548:7;:19;11556:10;11548:19;;;;;;;;;;;;;;;;11534:9;:13;;:34;;;;:::i;:::-;11517:51;;11606:32;11631:6;11606:8;:20;11615:10;11606:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11583:8;:20;11592:10;11583:20;;;;;;;;;;;;;;;:55;;;;11675:9;11653:7;:19;11661:10;11653:19;;;;;;;;;;;;;;;:31;;;;11714:24;11731:6;11714:12;;:16;;:24;;;;:::i;:::-;11699:12;:39;;;;11781:10;11760:40;;11777:1;11760:40;;;11793:6;11760:40;;;;;;;;;;;;;;;;;;11820:31;11832:10;11844:6;11820:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;11361:502;;10647:1223;;;;;:::o;2834:91::-;2878:7;2905:12;;2898:19;;2834:91;:::o;438:61::-;;;;:::o;6117:205::-;6221:20;2401:9;;;;;;;;;;;2387:23;;:10;:23;;;:70;;;;2445:12;;;;;;;;;;;2431:26;;:10;:26;;;2387:70;:114;;;;2492:9;;;;;;;;;;;2478:23;;:10;:23;;;2387:114;:163;;;;2536:14;;;;;;;;;;;2522:28;;:10;:28;;;2387:163;:207;;;;2585:9;;;;;;;;;;;2571:23;;:10;:23;;;2387:207;2365:240;;;;;;2650:1;2624:11;:23;2636:10;2624:23;;;;;;;;;;;;;;;;:27;2616:36;;;;;;6266:48:::1;6294:7;:19;6302:10;6294:19;;;;;;;;;;;;;;;;6266:11;:23;6278:10;6266:23;;;;;;;;;;;;;;;;:27;;:48;;;;:::i;:::-;6259:55;;6117:205:::0;:::o;6882:2295::-;6927:18;6948:9;;;;;;;;;;;6927:30;;6968:16;6987:15;6968:34;;7037:10;7023:24;;:10;:24;;;7015:33;;;;;;7122:9;:21;7132:10;7122:21;;;;;;;;;;;;;;;;7111:8;:32;7103:41;;;;;;7254:11;:23;7266:10;7254:23;;;;;;;;;;;;;;;;7232:7;:19;7240:10;7232:19;;;;;;;;;;;;;;;;:45;7224:54;;;;;;7291:17;7330:8;;7318:2;:21;7311:5;:28;7291:48;;7350:18;7439:11;;7414:9;:21;7424:10;7414:21;;;;;;;;;;;;;;;;:37;;;;;;7384:11;;7372:8;:24;;;;;;7371:81;7350:102;;7463:17;7483:1;7463:21;;7574:9;7586:1;7574:13;;7569:979;7594:10;7589:1;:15;7569:979;;7626:16;7661:1;7658;:4;7645:9;:18;;;;;;7626:37;;7689:1;7684;:6;7680:857;;;7739:17;7791:1;7780:10;:12;7777:298;;;7894:1;7879:10;;7840:9;:21;7850:10;7840:21;;;;;;;;;;;;;;;;7829:8;:32;7828:62;;;;;;7827:68;7815:80;;7777:298;;;8064:10;;8026:11;;8001:9;:21;8011:10;8001:21;;;;;;;;;;;;;;;;:37;;;;;;8000:75;;;;;;7965:10;;7953:11;;:22;;;;;;7952:123;7940:135;;7777:298;8108:35;8133:9;8122:8;:20;8108:9;:13;;:35;;;;:::i;:::-;8096:47;;7680:857;;;;8175:10;8171:1;:14;8167:370;;;8246:50;8284:10;;8272:11;;:22;;;;;;8260:8;:35;8246:9;:13;;:50;;;;:::i;:::-;8234:62;;8167:370;;;8327:10;8322:1;:15;8318:219;;;8390:17;8454:1;8440:10;;8423:11;;8411:8;:24;;;;;;8410:41;;;;;;:45;8390:65;;8486:35;8511:9;8500:8;:20;8486:9;:13;;:35;;;;:::i;:::-;8474:47;;8318:219;;8167:370;7680:857;7569:979;7606:3;;;;;;;7569:979;;;;8582:11;:23;8594:10;8582:23;;;;;;;;;;;;;;;;8570:9;:35;8567:88;;;8632:11;:23;8644:10;8632:23;;;;;;;;;;;;;;;;8620:35;;8567:88;8708:9;8686:7;:19;8694:10;8686:19;;;;;;;;;;;;;;;;:31;8668:502;;;8824:14;8841:34;8855:7;:19;8863:10;8855:19;;;;;;;;;;;;;;;;8841:9;:13;;:34;;;;:::i;:::-;8824:51;;8913:32;8938:6;8913:8;:20;8922:10;8913:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8890:8;:20;8899:10;8890:20;;;;;;;;;;;;;;;:55;;;;8982:9;8960:7;:19;8968:10;8960:19;;;;;;;;;;;;;;;:31;;;;9021:24;9038:6;9021:12;;:16;;:24;;;;:::i;:::-;9006:12;:39;;;;9088:10;9067:40;;9084:1;9067:40;;;9100:6;9067:40;;;;;;;;;;;;;;;;;;9127:31;9139:10;9151:6;9127:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;8668:502;;6882:2295;;;;;:::o;329:28::-;;;;:::o;382:27::-;;;;:::o;1099:74::-;;;;;;;;;;;;;:::o;6362:377::-;2401:9;;;;;;;;;;;2387:23;;:10;:23;;;:70;;;;2445:12;;;;;;;;;;;2431:26;;:10;:26;;;2387:70;:114;;;;2492:9;;;;;;;;;;;2478:23;;:10;:23;;;2387:114;:163;;;;2536:14;;;;;;;;;;;2522:28;;:10;:28;;;2387:163;:207;;;;2585:9;;;;;;;;;;;2571:23;;:10;:23;;;2387:207;2365:240;;;;;;2650:1;2624:11;:23;2636:10;2624:23;;;;;;;;;;;;;;;;:27;2616:36;;;;;;6439:9:::1;;;;;;;;;;;6425:23;;:10;:23;;;6421:310;;;6450:17;:15;:17::i;:::-;6421:310;;;6501:12;;;;;;;;;;;6487:26;;:10;:26;;;6483:248;;;6515:20;:18;:20::i;:::-;6483:248;;;6569:9;;;;;;;;;;;6555:23;;:10;:23;;;6551:180;;;6580:17;:15;:17::i;:::-;6551:180;;;6631:14;;;;;;;;;;;6617:28;;:10;:28;;;6613:118;;;6647:22;:20;:22::i;:::-;6613:118;;;6703:9;;;;;;;;;;;6689:23;;:10;:23;;;6685:46;;;6714:17;:15;:17::i;:::-;6685:46;6613:118;6551:180;6483:248;6421:310;6362:377::o:0;923:72::-;;;;;;;;;;;;;:::o;1381:46::-;;;;;;;;;;;;;;;;;:::o;13282:1223::-;13327:18;13348:9;;;;;;;;;;;13327:30;;13368:16;13387:15;13368:34;;13437:10;13423:24;;:10;:24;;;13415:33;;;;;;13522:9;:21;13532:10;13522:21;;;;;;;;;;;;;;;;13511:8;:32;13503:41;;;;;;13656:11;:23;13668:10;13656:23;;;;;;;;;;;;;;;;13634:7;:19;13642:10;13634:19;;;;;;;;;;;;;;;;:45;13626:54;;;;;;13693:17;13732:8;;13720:2;:21;13713:5;:28;13693:48;;13752:17;13826:1;13811:10;;13785:9;:21;13795:10;13785:21;;;;;;;;;;;;;;;;13774:8;:32;13773:49;;;;;;13772:55;13752:75;;13838:17;13858:24;13872:9;13858;:13;;:24;;;;:::i;:::-;13838:44;;13910:11;:23;13922:10;13910:23;;;;;;;;;;;;;;;;13898:9;:35;13895:88;;;13960:11;:23;13972:10;13960:23;;;;;;;;;;;;;;;;13948:35;;13895:88;14036:9;14014:7;:19;14022:10;14014:19;;;;;;;;;;;;;;;;:31;13996:502;;;14152:14;14169:34;14183:7;:19;14191:10;14183:19;;;;;;;;;;;;;;;;14169:9;:13;;:34;;;;:::i;:::-;14152:51;;14241:32;14266:6;14241:8;:20;14250:10;14241:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14218:8;:20;14227:10;14218:20;;;;;;;;;;;;;;;:55;;;;14310:9;14288:7;:19;14296:10;14288:19;;;;;;;;;;;;;;;:31;;;;14349:24;14366:6;14349:12;;:16;;:24;;;;:::i;:::-;14334:12;:39;;;;14416:10;14395:40;;14412:1;14395:40;;;14428:6;14395:40;;;;;;;;;;;;;;;;;;14455:31;14467:10;14479:6;14455:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;13996:502;;13282:1223;;;;;:::o;3144:173::-;3200:7;3246:1;3228:20;;:6;:20;;;;3220:29;;;;;;3293:8;:16;3302:6;3293:16;;;;;;;;;;;;;;;;3286:23;;3144:173;;;:::o;9297:1227::-;9345:18;9366:12;;;;;;;;;;;9345:33;;9389:16;9408:15;9389:34;;9458:10;9444:24;;:10;:24;;;9436:33;;;;;;9543:9;:21;9553:10;9543:21;;;;;;;;;;;;;;;;9532:8;:32;9524:41;;;;;;9677:11;:23;9689:10;9677:23;;;;;;;;;;;;;;;;9655:7;:19;9663:10;9655:19;;;;;;;;;;;;;;;;:45;9647:54;;;;;;9712:17;9751:8;;9739:2;:21;9732:5;:28;9712:48;;9771:17;9845:1;9830:10;;9804:9;:21;9814:10;9804:21;;;;;;;;;;;;;;;;9793:8;:32;9792:49;;;;;;9791:55;9771:75;;9857:17;9877:24;9891:9;9877;:13;;:24;;;;:::i;:::-;9857:44;;9929:11;:23;9941:10;9929:23;;;;;;;;;;;;;;;;9917:9;:35;9914:88;;;9979:11;:23;9991:10;9979:23;;;;;;;;;;;;;;;;9967:35;;9914:88;10055:9;10033:7;:19;10041:10;10033:19;;;;;;;;;;;;;;;;:31;10015:502;;;10171:14;10188:34;10202:7;:19;10210:10;10202:19;;;;;;;;;;;;;;;;10188:9;:13;;:34;;;;:::i;:::-;10171:51;;10260:32;10285:6;10260:8;:20;10269:10;10260:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10237:8;:20;10246:10;10237:20;;;;;;;;;;;;;;;:55;;;;10329:9;10307:7;:19;10315:10;10307:19;;;;;;;;;;;;;;;:31;;;;10368:24;10385:6;10368:12;;:16;;:24;;;;:::i;:::-;10353:12;:39;;;;10435:10;10414:40;;10431:1;10414:40;;;10447:6;10414:40;;;;;;;;;;;;;;;;;;10474:31;10486:10;10498:6;10474:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;10015:502;;9297:1227;;;;;:::o;1535:44::-;;;;;;;;;;;;;;;;;:::o;786:37::-;;;;:::o;267:38::-;;;;;;;;;;;;;;;;;;;:::o;4118:175::-;4199:12;4229:34;4239:10;4251:3;4256:6;4229:9;:34::i;:::-;4281:4;4274:11;;4118:175;;;;:::o;11945:1233::-;11995:18;12016:14;;;;;;;;;;;11995:35;;12041:16;12060:15;12041:34;;12110:10;12096:24;;:10;:24;;;12088:33;;;;;;12195:9;:21;12205:10;12195:21;;;;;;;;;;;;;;;;12184:8;:32;12176:41;;;;;;12329:11;:23;12341:10;12329:23;;;;;;;;;;;;;;;;12307:7;:19;12315:10;12307:19;;;;;;;;;;;;;;;;:45;12299:54;;;;;;12366:17;12405:8;;12393:2;:21;12386:5;:28;12366:48;;12425:17;12499:1;12484:10;;12458:9;:21;12468:10;12458:21;;;;;;;;;;;;;;;;12447:8;:32;12446:49;;;;;;12445:55;12425:75;;12511:17;12531:24;12545:9;12531;:13;;:24;;;;:::i;:::-;12511:44;;12583:11;:23;12595:10;12583:23;;;;;;;;;;;;;;;;12571:9;:35;12568:88;;;12633:11;:23;12645:10;12633:23;;;;;;;;;;;;;;;;12621:35;;12568:88;12709:9;12687:7;:19;12695:10;12687:19;;;;;;;;;;;;;;;;:31;12669:502;;;12825:14;12842:34;12856:7;:19;12864:10;12856:19;;;;;;;;;;;;;;;;12842:9;:13;;:34;;;;:::i;:::-;12825:51;;12914:32;12939:6;12914:8;:20;12923:10;12914:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12891:8;:20;12900:10;12891:20;;;;;;;;;;;;;;;:55;;;;12983:9;12961:7;:19;12969:10;12961:19;;;;;;;;;;;;;;;:31;;;;13022:24;13039:6;13022:12;;:16;;:24;;;;:::i;:::-;13007:12;:39;;;;13089:10;13068:40;;13085:1;13068:40;;;13101:6;13068:40;;;;;;;;;;;;;;;;;;13128:31;13140:10;13152:6;13128:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;12669:502;;11945:1233;;;;;:::o;1859:27::-;;;;:::o;1011:69::-;;;;;;;;;;;;;:::o;1195:::-;;;;;;;;;;;;;:::o;1694:42::-;;;;;;;;;;;;;;;;;:::o;3325:87::-;3367:7;3394:10;;3387:17;;3325:87;:::o;745:34::-;;;;:::o;14538:208::-;14596:7;14625:1;14620;:6;14616:47;;;14650:1;14643:8;;;;14616:47;14673:9;14689:1;14685;:5;14673:17;;14717:1;14712;14708;:5;;;;;;:10;14701:18;;;;14737:1;14730:8;;;14538:208;;;;;:::o;14884:123::-;14942:7;14974:1;14969;:6;;14962:14;;;;14998:1;14994;:5;14987:12;;14884:123;;;;:::o;15015:147::-;15073:7;15093:9;15109:1;15105;:5;15093:17;;15133:1;15128;:6;;15121:14;;;;15153:1;15146:8;;;15015:147;;;;:::o;3485:625::-;3585:1;3576:6;:10;3568:19;;;;;;3662:1;3647:17;;:3;:17;;;;3639:26;;;;;;3768:1;3737:27;3757:6;3737:8;:15;3746:5;3737:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;:32;;3729:41;;;;;;3849:8;:13;3858:3;3849:13;;;;;;;;;;;;;;;;3821:25;3839:6;3821:8;:13;3830:3;3821:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;:41;3813:50;;;;;;3933:27;3953:6;3933:8;:15;3942:5;3933:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;3915:8;:15;3924:5;3915:15;;;;;;;;;;;;;;;:45;;;;4031:25;4049:6;4031:8;:13;4040:3;4031:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4015:8;:13;4024:3;4015:13;;;;;;;;;;;;;;;:41;;;;4090:3;4074:28;;4083:5;4074:28;;;4095:6;4074:28;;;;;;;;;;;;;;;;;;3485:625;;;:::o

Swarm Source

ipfs://1ca791bfd8b9bc65c41d7cec6f15311448048dd745375ca7d83e954e76fe7bd8

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

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