Contract 0x471683c0a53f9abb39546b9a241eea4b8d13d311

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xef2223cf5012afeede1ceab125c351507e6f198140ca4916f28412a93e60efafBuy Toke With Co...83902812021-06-18 1:03:55120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000279805
0x480eba7637b10c06d8eb36dccfe972c3da6b1fe69e0980055958a478c4f673cdBuy Toke With Co...83902392021-06-18 1:01:49120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x7d07af393ebd14eadab6e40efaf5743d49ac7673b81a1e5a20f0fa2dcf559240Buy Toke With Co...83902272021-06-18 1:01:13120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x6b708a40af28e9c0bd6839a0cd8d3d4d456b0c3c86f33e67683ba3af7bf99391Buy Toke With Co...83902112021-06-18 1:00:25120 days 22 hrs ago0x831127f224fff143dbf2645fef412bada1da794f IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000279805
0x465bbc90d368014b7e772a1c6842cc7fc1d550753a7998fdd8fc221351cd58b0Claim83902012021-06-18 0:59:55120 days 22 hrs ago0xc7b7df1f2f35dcd035309643ffed74fe7261a11b IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.00083246
0x2855af9f6481cca7ed96db36584f4a44ec47a5cd379f0794a78c9f651146939aBuy Toke With Co...83901282021-06-18 0:56:16120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xf428a12f76363c950574ea2cc88046467e3fcb02f153f81e8853ee73cf98f36eBuy Toke With Co...83901012021-06-18 0:54:55120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x6a552a1e26bfce95336572d5acc19105a52c835b3a94265523066e1f3af1106dBuy Toke With Co...83900842021-06-18 0:54:04120 days 22 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xba8f41380cd611f87294cf6bad645e059bc9e1cd8c33be40a2aedc7b91593d3cBuy Toke With Co...83899122021-06-18 0:45:28120 days 22 hrs ago0x831127f224fff143dbf2645fef412bada1da794f IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000279805
0x6087917841e2d9dc8808f0ac7cc30595c81d7b1fc876fe8db255cc1e12dc2621Buy Toke With Co...83898632021-06-18 0:43:01120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x3ea7466b4ffd60a03ae9ad05e3e8125c1af71d0774d19852bb1e493f12b709c5Claim83898622021-06-18 0:42:58120 days 22 hrs ago0x1ceba98ff79a8a3c7640301b4d540abe9aab8b95 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.00083227
0x5fa0ed220dd5fb45710605fb79972d19d2e5d89a2686aa6a92e0a94540e8861bBuy Toke With Co...83898552021-06-18 0:42:37120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xf37dfb71a60b7ae18d1d2f7573086091e077f1fe17ceef8165840cfe6805f3fcBuy Toke With Co...83898372021-06-18 0:41:43120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xb46b9fa92c426a9ca2c543a866be07a1e7da4a114fec8621179bf29ec89672d2Buy Toke With Co...83898212021-06-18 0:40:55120 days 22 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xc909515b39c5b1a1daec60309138882a92853bd01feb7b67bab563768a5172b7Claim83898152021-06-18 0:40:37120 days 22 hrs ago0xa345f0e6c47c00ca1efc7cca501bdf5cc1285a79 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.001048915
0xb1c1811c29ad867388efbc75c75ba51ab7324f0d863f2bb2ea6d92aa86cd31fdBuy Toke With Co...83897662021-06-18 0:38:10120 days 23 hrs ago0x115d330dd1e5d453888366363960a4bf527a6bf8 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xa1b1ac04930fc4fca41e061791077f9ac1e9d1235e674dc9fde5b93f929af7b0Claim83896562021-06-18 0:32:40120 days 23 hrs ago0xe286d1d69d6b31275298c35ab3038e95c2bfd820 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.001049925
0xcf9a77eb7957b1088262a683b34b40424a59260c710c7695160f08f4e5bac7b0Claim83895042021-06-18 0:25:04120 days 23 hrs ago0x831127f224fff143dbf2645fef412bada1da794f IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.00083126
0xf2fd6279d1dc6164926a2a9d97505c81c1dfedcdb5ab46ba46f08eda6e4aa0b3Buy Toke With Co...83894382021-06-18 0:21:46120 days 23 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x5d1a8fc35187fc035ad1d091f6f1150762b683cf01d8e9d3e70c797c7a73ede6Buy Toke With Co...83893702021-06-18 0:18:21120 days 23 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x63cf35d6cbfcd3b5d11ef66356803d8b74d595ee6a932b529ce6c7b31215ce8eBuy Toke With Co...83892342021-06-18 0:11:33120 days 23 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0xe53cf15ac6071f03d16e8cc1af4e36d374dc527a18210be4c83e7fac74a1481dBuy Toke With Co...83892112021-06-18 0:10:16120 days 23 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.05 BNB0.000281725
0x785ef69a4c7549b327fe307882e56d82702a6a1ad2be1a94c94dffd0a68b1f7fClaim83890962021-06-18 0:03:52120 days 23 hrs ago0xc560f6e4a0a7bf675e10f1e9c2bdcfb58879f3a5 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.001048915
0x6b5c948dc9d34de8a57ddd1632545442772f7fcb196ac9bcd10eaf448f475520Claim83889732021-06-17 23:57:25120 days 23 hrs ago0x9aa0cd19882112dc0e5272722be4950e1777d47a IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.001048915
0x2df3d9b53a0ca43f5cb204cc640943f40131f32c29f75ec4bce8fe705eb36769Claim83887752021-06-17 23:47:03120 days 23 hrs ago0x581a188bf524714c90c6a30119815534021f5df7 IN  0x471683c0a53f9abb39546b9a241eea4b8d13d3110.003 BNB0.00061456
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x465bbc90d368014b7e772a1c6842cc7fc1d550753a7998fdd8fc221351cd58b083902012021-06-18 0:59:55120 days 22 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x3ea7466b4ffd60a03ae9ad05e3e8125c1af71d0774d19852bb1e493f12b709c583898622021-06-18 0:42:58120 days 22 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xc909515b39c5b1a1daec60309138882a92853bd01feb7b67bab563768a5172b783898152021-06-18 0:40:37120 days 22 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xa1b1ac04930fc4fca41e061791077f9ac1e9d1235e674dc9fde5b93f929af7b083896562021-06-18 0:32:40120 days 23 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xcf9a77eb7957b1088262a683b34b40424a59260c710c7695160f08f4e5bac7b083895042021-06-18 0:25:04120 days 23 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x785ef69a4c7549b327fe307882e56d82702a6a1ad2be1a94c94dffd0a68b1f7f83890962021-06-18 0:03:52120 days 23 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x6b5c948dc9d34de8a57ddd1632545442772f7fcb196ac9bcd10eaf448f47552083889732021-06-17 23:57:25120 days 23 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x2df3d9b53a0ca43f5cb204cc640943f40131f32c29f75ec4bce8fe705eb3676983887752021-06-17 23:47:03120 days 23 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xc6efbee01bbb57d9c059bd15d8866e0dd665224982ac92e0b4254a3f3e535da083871112021-06-17 22:22:53121 days 1 hr ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x1e2a79a4cc073feecbeba8d0f6a55f5498843668094a05a80e085cf98436cc8e83868702021-06-17 22:10:50121 days 1 hr ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x05c02ce13ffdc5c4d7f6f7a0127d19cc1a562b8960d2b27b679782927ad5e49983867532021-06-17 22:04:59121 days 1 hr ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x225d01e38638fc4b03acd680f576c93cb0d9f65f2f1cb8139692789ca42fd1ee83864702021-06-17 21:50:50121 days 1 hr ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xae84ebf62a556ae875b7dc9d9e7da58bcf8700e22578e954423a3c8ebd81ce5a83860442021-06-17 21:28:56121 days 2 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x174bdcf3153ebccda1e66141d5cd7f2165763ec985a75575e0e5abfd31e61b6a83853352021-06-17 20:53:26121 days 2 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xa471d531c5ec7596901c1e18a7122162d7d90c02edb8b967ff4bab8afa30a09883852112021-06-17 20:47:14121 days 2 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xe04351cec00b196fcd47e00bbaac1c197636491aceada20970c197b0b7df3cf083849812021-06-17 20:35:44121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x24fefa4138c226099bb269af389973aa6dc8f535b1105c6ba16c49c4d6c221c083849622021-06-17 20:34:47121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x240c4314747e625685dcc134c262823b6df13b013958dd312576a8f665bed42683849482021-06-17 20:34:05121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xcd1af9538ba7b9c20f2557ff19bb6991c36d8863664a328bbdcb276860fedbd583848112021-06-17 20:27:14121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x59da562ce8293fcb410268a763724fcdd01483f974204ce19b8916e6478ab5f883847072021-06-17 20:22:02121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x80a009270b1fc1eef9ae3c21400e5fdb8a612f47d93b1c3f1761ec22cb38d36483846442021-06-17 20:18:53121 days 3 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xd55b5aa3e9ac5c2633126419daa9aa79fdab98777a104d118b1b9451db052fd083829962021-06-17 18:56:18121 days 4 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x73340613da403b460e3c96e1e64f1c2405593a2c64c7dbeebe8e28dc5976c32783828522021-06-17 18:49:06121 days 4 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0x906228334492b9533fc9fdcb22fb1da2f296998f20a890756a18ec09d6b3e58d83827522021-06-17 18:44:06121 days 4 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
0xd707b32976c8e676c55d75fa03c94183eddc6287e499a0c85169bcd802d56f1583826032021-06-17 18:36:29121 days 5 hrs ago 0x471683c0a53f9abb39546b9a241eea4b8d13d3110xdca8dc393e96ed404e3d6f67a547fd6d8c942d340.003 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BuyTokenClaim

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-11
*/

/**
 
*/

pragma solidity ^0.8.3;
// SPDX-License-Identifier: GPL-3.0-or-later

interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address tokenOwner) external view returns (uint balance);
    function allowance(address tokenOwner, address spender) external view returns (uint remaining);
    function transfer(address to, uint tokens) external returns (bool success);
    function approve(address spender, uint tokens) external returns (bool success);
    function transferFrom(address from, address to, uint tokens) external returns (bool success);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract Owned {
    address public address_owner;
    constructor() { 
        address_owner = payable(msg.sender);
    }

    modifier onlyOwner {
        require(
            msg.sender == address_owner,
            "Only owner can call this function."
        );
        _;
    }
    function transferOwnership(address _address_owner) public onlyOwner {
        address_owner = _address_owner;
    }
}

contract BuyTokenClaim is Owned {
    
    //BuyToken
    address public token_address;
    uint256 public min_value;
    uint256 public price_current;
    uint256 public div_price_current;
    uint256 public time_start_current;
    uint256 public time_end_current;
    bool public is_sale_token = true;
    uint256 public price_next;
    uint256 public div_price_next;
    uint256 public time_start_next;
    uint256 public time_end_next;
    
    event BuyEvent(uint256 price, uint256 amount);
    
    
    // Claim
    address public claim_address;
    uint256 public claim_fee;
    uint256 public claim_min;
    uint256 public claim_max;
    uint256 public claim_decimal;
    uint256 private rand_nonce = 0;
    bool private is_claim = true;
    mapping (address => bool) private claimed_addresses;
    
    event ClaimEvent(uint256 amount);
    //Referral
 
    uint256 private claim_referral_bonus;
    uint256 private buy_referral_bonus ;
    mapping (address => uint256) private referrals;
    mapping (uint256 => address) private referral_codes;
    mapping (address => address) private referral_parents;
 
    constructor(){
        //Buy
        address _token_address = address(0x604EC46C34495A132c75B67423d37932B7eEbAe6);
        uint256 _min_value = 50000000000000000;
        uint256 _price = 40000000000;
        uint256 div_price = 1;
        uint256 time_start = block.timestamp;
        uint256 time_end = block.timestamp + 300 days;
        
        //Claim
        claim_address = address_owner;
        claim_fee = 3000000000000000;
        claim_min = 10000000000;
        claim_max = 12000000000;
        claim_decimal = 0;
        
        //Referral
        claim_referral_bonus = 10000000;
        buy_referral_bonus = 10000;
    
        price_current = _price;
        div_price_current = div_price;
        time_start_current = time_start;
        time_end_current = time_end;
        initBuyToken(_token_address, _min_value, _price, div_price, time_start, time_end);
        claim_address = address(0xDCA8dc393e96Ed404e3d6f67a547FD6D8C942d34);
    }
 
    function initBuyToken(address _token_address, uint256 _min_value, uint256 _price, uint256 div_price, uint256 time_start, uint256 time_end) public onlyOwner{
        token_address = _token_address;
        min_value = _min_value;
        addPrice(_price, div_price, time_start, time_end);
    }
 
    function addPrice(uint256 _price, uint256 div_price, uint256 time_start, uint256 time_end) public onlyOwner{
        price_next = _price;
        div_price_next = div_price;
        time_start_next = time_start;
        time_end_next = time_end;
        checkPrice();
    }
 
    function setAddressToken(address _token_address) public onlyOwner{
        token_address = _token_address;
    }
 
    receive () external payable{
        buy();
    }
    
    function priceCurrent() public view returns(uint256 price, uint256 div_price) {
        return (price_current, div_price_current);
    }
    
    function isSale() public view returns(bool) {
        return (block.timestamp <= time_end_current && is_sale_token != false);
    }
    
    function closeSale() public onlyOwner{
        is_sale_token = false;
    }
    
    function getSaleInfo() public view returns(bool is_sale, uint256 min_amount, uint256 price, uint256 div_price, uint256 claim_bonus, uint256 buy_bonus, uint256 claim_min_amount, uint256 claim_max_amount){
        bool is_sale_status = (block.timestamp <= time_end_current && is_sale_token != false);
        return (is_sale_status, min_value, price_current, div_price_current, claim_referral_bonus, buy_referral_bonus, claim_min, claim_max);
    }
    
    function setToken(address _token_address) public onlyOwner{
        token_address = _token_address;
    }
    
    function sendToken(address _token_address) payable public returns(bool) {
        ERC20 token = ERC20(_token_address);
        uint256 balance = token.balanceOf(address(this));
        return token.transfer(address_owner, balance);
    }
    
    function checkPrice() public {
        uint256 time_current = block.timestamp;
        if (price_next > 0 && time_current >= time_start_next && time_current <= time_end_next)
        {
            price_current = price_next;
            div_price_current = div_price_next;
            time_start_current = time_start_next;
            time_end_current = time_end_next;
            price_next = 0;
        }
    }
    
    function buyTokeWithCode(uint256 referral_code) payable public returns(bool) {
        return buyToken(token_address, referral_code);
    }
    
    function buyToken(address _token_address, uint256 referral_code) payable public returns(bool) {
        require(_token_address != address(0), "Please set token address");
        ERC20 token = ERC20(_token_address);
        uint256 amount_send = msg.value;
        uint256 token_balance = token.balanceOf(address(address_owner));
        require(amount_send >= min_value, "You amount to small");
        uint256 time_current = block.timestamp;
        checkPrice();
        require(price_current > 0, "Please set price of token");
        require(time_current <= time_end_current && is_sale_token != false, "Token sale is finished");
        uint256 amount_buy = amount_send * price_current / div_price_current;
        uint256 decimals = 18 - token.decimals();
        require(decimals >= 0, "Decimals is invalid");
        amount_buy = amount_buy / (10 ** decimals);
        require(token_balance >= amount_buy, "Not enough tokens in the reserve");
        require(amount_buy > 0, "You amount token to small");
        token.transferFrom(address_owner, msg.sender, amount_buy);
        address parent = getParentReferral(msg.sender, referral_code);
        if (parent != address(0))
        {
            token.transferFrom(address_owner, parent, buy_referral_bonus * amount_buy / 10000); 
        }
        payable(address_owner).transfer(address(this).balance);
        addReferral(msg.sender, parent);
        emit BuyEvent(price_current, amount_buy);
        return true;
    }

    function buy() payable public returns(bool) {
        return buyToken(token_address, 0); 
    }
    
    //Claim
    function initClaim(address _token_address, uint256 _claim_fee, uint256 _amount_min, uint256 _amount_max, uint256 _unit_decimal) public onlyOwner{
        token_address = _token_address;
        claim_fee = _claim_fee;
        claim_decimal = _unit_decimal;
        setClaimLimit(_amount_min, _amount_max);
    }
     
    function setClaimAddress(address _address) public onlyOwner{
        claim_address = _address;
    }
    
    function setClaimFee(uint256 _claim_fee) public onlyOwner{
        claim_fee = _claim_fee;
    }
      
    function setClaimDecimal(uint256 _claim_decimal) public onlyOwner{
        claim_decimal = _claim_decimal;
    }
        
    function setClaimLimit(uint256 _amount_min, uint256 _amount_max) public onlyOwner{
        claim_min = _amount_min;
        claim_max = _amount_max;
    }
    
    function closeClaim() public returns(bool) {
        is_claim  = false; 
        return is_claim;
    }
    
    function setIsClaim(bool _is_claim) public returns(bool) {
        is_claim  = _is_claim; 
        return is_claim;
    }
    
   function claimToken(address _token_address, uint256 referral_code) payable public returns(bool) {
        require(claimed_addresses[msg.sender] != true, "Address is exist");
        require(is_claim == true, "Claimed is finished");
        require(_token_address != address(0), "Please set token address");
        ERC20 token = ERC20(_token_address);
        uint256 amount_send = msg.value;
        uint256 token_balance = token.balanceOf(address(claim_address));
        uint256 amount_claim = randomClaimAmount(_token_address);
        require(amount_send >= claim_fee, "You need to send some fee. Fee to small.");
        require(token_balance >= amount_claim, "Not enough tokens in the reserve");
        token.transferFrom(claim_address, msg.sender, amount_claim);
        emit ClaimEvent(amount_claim);
        claimed_addresses[msg.sender] = true;
        address parent = getParentReferral(msg.sender, referral_code);
        if (parent != address(0))
        {
            uint256 decimals = token.decimals();
            token.transferFrom(claim_address, parent, claim_referral_bonus * (10 ** decimals)); 
        }
        addReferral(msg.sender, parent);
        payable(claim_address).transfer(address(this).balance);
        return true;
    }

    function claim(uint256 referral_code) payable public returns(bool) {
        return claimToken(token_address, referral_code); 
    }

    function isClaim() public view returns(bool) {
        return is_claim; 
    }
    
    
    function isClaimed(address _address) public view returns(bool) {
        return claimed_addresses[_address] == true; 
    }
    
    function claimFee() public view returns(uint256) {
        return claim_fee; 
    }
        
    function claimCheck(address _address) public view returns(uint256 fee, bool is_claim_token, bool is_claimed) {
        bool _is_claimed = (claimed_addresses[_address] == true);
        return (claim_fee, is_claim, _is_claimed); 
    }
    
    function randomClaimAmount(address _token_address) public returns(uint256){
        ERC20 token = ERC20(_token_address);
        uint decimals = token.decimals();
        uint256 min = claim_min * 10 ** uint256(decimals);
        uint256 max = claim_max * 10 ** uint256(decimals);
        uint256 randomAmount = random();
        uint256 amount = randomAmount % max;
        if (amount + min <= max)
        {
            amount = amount + min;
        }
        
        uint256 fixed_decimal = 10 ** uint256(decimals - claim_decimal);
        amount = amount / fixed_decimal * fixed_decimal;
        return amount;
    }
    
    function random() public returns(uint256){
        rand_nonce = rand_nonce + 1;
        if (rand_nonce > 0xFFFFFFFFFFFFFFFFFFFFF)
        {
            rand_nonce = 0;
        }
        return randomWithNonce(rand_nonce);
    }
    
    function randomWithNonce(uint256 _rand_nonce) public payable returns(uint256){
        return uint256(keccak256(abi.encodePacked(block.difficulty, block.timestamp, block.coinbase, block.number, msg.sender, _rand_nonce)));
    }
    
    //Referral
    function setBonus(uint256 claim_bonus, uint256 buy_bonus) public returns(uint256, uint256) {
        claim_referral_bonus = claim_bonus;
        buy_referral_bonus = buy_bonus;
        return (claim_referral_bonus, buy_referral_bonus);
    }
    
    function setBuyBonus(uint256 amount) public returns(uint256) {
        buy_referral_bonus = amount;
        return buy_referral_bonus;
    }
    
    function setClaimBonus(uint256 amount) public returns(uint256) {
        claim_referral_bonus = amount;
        return claim_referral_bonus;
    }
    
    function addReferral(address _address, address parent) public returns(uint256) {
        if (referrals[_address] == 0){
            uint256 code;
            uint256 index = 0;
            while(true)
            {
                code = randomWithNonce(index);
                index += 1;
                if (referral_codes[code] == address(0))
                    break;
            }
            referral_codes[code] = _address;
            referrals[_address] = code;
            if(parent != address(0))
                referral_parents[_address] = parent;
        }
        return referrals[_address];
    }
    
    function getReferralCode(address _address) public view returns(uint256) {
        return referrals[_address];
    }
    
    function getParentReferral(address _address, uint256 referral_code) public view returns(address) {
        address parent = referral_parents[_address];
        if (parent == address(0))
            parent = referral_codes[referral_code];
        if (parent != msg.sender)
            return parent;
        return address(0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"time_start","type":"uint256"},{"internalType":"uint256","name":"time_end","type":"uint256"}],"name":"addPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"address","name":"parent","type":"address"}],"name":"addReferral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"address_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"buyTokeWithCode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"buyToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"checkPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"claimCheck","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"is_claim_token","type":"bool"},{"internalType":"bool","name":"is_claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"claimToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claim_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_decimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_min","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"div_price_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"div_price_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"referral_code","type":"uint256"}],"name":"getParentReferral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getReferralCode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSaleInfo","outputs":[{"internalType":"bool","name":"is_sale","type":"bool"},{"internalType":"uint256","name":"min_amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"claim_bonus","type":"uint256"},{"internalType":"uint256","name":"buy_bonus","type":"uint256"},{"internalType":"uint256","name":"claim_min_amount","type":"uint256"},{"internalType":"uint256","name":"claim_max_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"_min_value","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"},{"internalType":"uint256","name":"time_start","type":"uint256"},{"internalType":"uint256","name":"time_end","type":"uint256"}],"name":"initBuyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"},{"internalType":"uint256","name":"_claim_fee","type":"uint256"},{"internalType":"uint256","name":"_amount_min","type":"uint256"},{"internalType":"uint256","name":"_amount_max","type":"uint256"},{"internalType":"uint256","name":"_unit_decimal","type":"uint256"}],"name":"initClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_sale_token","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"min_value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceCurrent","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"div_price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"randomClaimAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rand_nonce","type":"uint256"}],"name":"randomWithNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"sendToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"setAddressToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claim_bonus","type":"uint256"},{"internalType":"uint256","name":"buy_bonus","type":"uint256"}],"name":"setBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setClaimAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setClaimBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_claim_decimal","type":"uint256"}],"name":"setClaimDecimal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_claim_fee","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount_min","type":"uint256"},{"internalType":"uint256","name":"_amount_max","type":"uint256"}],"name":"setClaimLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_is_claim","type":"bool"}],"name":"setIsClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token_address","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"time_end_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_end_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_start_current","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_start_next","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address_owner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600760006101000a81548160ff02191690831515021790555060006011556001601260006101000a81548160ff0219169083151502179055503480156200004c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073604ec46c34495a132c75b67423d37932b7eebae69050600066b1a2bc2ec50000905060006409502f900090506000600190506000429050600063018b820042620000db919062000483565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550660aa87bee538000600d819055506402540be400600e819055506402cb417800600f8190555060006010819055506298968060148190555061271060158190555083600381905550826004819055508160058190555080600681905550620001b18686868686866200021260201b60201c565b73dca8dc393e96ed404e3d6f67a547fd6d8c942d34600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000568565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620002a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029a9062000450565b60405180910390fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600281905550620002ff848484846200030760201b60201c565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200038f9062000450565b60405180910390fd5b836008819055508260098190555081600a8190555080600b81905550620003c4620003ca60201b60201c565b50505050565b60004290506000600854118015620003e45750600a548110155b8015620003f35750600b548111155b156200042657600854600381905550600954600481905550600a54600581905550600b5460068190555060006008819055505b50565b60006200043860228362000472565b9150620004458262000519565b604082019050919050565b600060208201905081810360008301526200046b8162000429565b9050919050565b600082825260208201905092915050565b60006200049082620004e0565b91506200049d83620004e0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004d557620004d4620004ea565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b613b3680620005786000396000f3fe60806040526004361061031e5760003560e01c80638cc08025116101ab578063c2fc94a1116100f7578063ebc8aa1911610095578063f2fde38b1161006f578063f2fde38b14610bf4578063f8c1c18614610c1d578063fbf8864e14610c48578063fd03187914610c855761032e565b8063ebc8aa1914610b89578063ee55efee14610bb2578063f14e0f5314610bc95761032e565b8063d1281ec4116100d1578063d1281ec414610ac2578063db83694c14610b01578063df2b2c0914610b33578063e595678014610b5e5761032e565b8063c2fc94a114610a3c578063c575c23814610a67578063cfc55bf714610a975761032e565b8063a6119ea711610164578063b4fffa521161013e578063b4fffa521461098d578063b7d3aaba146109b8578063bb379087146109e3578063bf0e490014610a0c5761032e565b8063a6119ea71461091b578063a6f2ae3a14610944578063b071b6c5146109625761032e565b80638cc08025146107f95780638fc3047d1461083657806392c403441461084d578063940312a91461088a578063963016ce146108b357806399d32fc4146108f05761032e565b8063337a42fd1161026a5780636515d04411610223578063762fac28116101fd578063762fac281461074f57806388a9031d146107785780638b5d181b146107a35780638c8e8fee146107ce5761032e565b80636515d044146106b957806365d3d96c146106e257806368f8fc101461071f5761032e565b8063337a42fd1461058e578063379607f5146105cb57806345b66bf1146105fb57806356f3fce8146106265780635e697698146106635780635ec01e4d1461068e5761032e565b80631c19b784116102d75780632ab0ac70116102b15780632ab0ac70146104e45780632e75ab501461050f5780632f383a40146105385780632ff176af146105635761032e565b80631c19b7841461045e57806320690e241461048957806325ffeea0146104b95761032e565b8063037c99b01461033357806309ad1a3d146103715780630b5c3f871461039c57806310cbe856146103d9578063144fa6d7146104055780631698755f1461042e5761032e565b3661032e5761032b610cae565b50005b600080fd5b34801561033f57600080fd5b5061035a60048036038101906103559190612ee1565b610ce2565b6040516103689291906134a9565b60405180910390f35b34801561037d57600080fd5b50610386610d04565b60405161039391906131e3565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612cc5565b610d28565b6040516103d09190613457565b60405180910390f35b3480156103e557600080fd5b506103ee610fa0565b6040516103fc9291906134a9565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612c9c565b610fb1565b005b61044860048036038101906104439190612d01565b611083565b604051610455919061325e565b60405180910390f35b34801561046a57600080fd5b50610473611682565b6040516104809190613457565b60405180910390f35b6104a3600480360381019061049e9190612e8f565b611688565b6040516104b0919061325e565b60405180910390f35b3480156104c557600080fd5b506104ce6116bd565b6040516104db919061325e565b60405180910390f35b3480156104f057600080fd5b506104f96116d4565b6040516105069190613457565b60405180910390f35b34801561051b57600080fd5b5061053660048036038101906105319190612e8f565b6116da565b005b34801561054457600080fd5b5061054d611772565b60405161055a9190613457565b60405180910390f35b34801561056f57600080fd5b50610578611778565b6040516105859190613457565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612d01565b61177e565b6040516105c291906131e3565b60405180910390f35b6105e560048036038101906105e09190612e8f565b611897565b6040516105f2919061325e565b60405180910390f35b34801561060757600080fd5b506106106118cc565b60405161061d9190613457565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190612e8f565b6118d2565b60405161065a9190613457565b60405180910390f35b34801561066f57600080fd5b506106786118e5565b6040516106859190613457565b60405180910390f35b34801561069a57600080fd5b506106a36118eb565b6040516106b09190613457565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612d3d565b611930565b005b3480156106ee57600080fd5b5061070960048036038101906107049190612c9c565b611a1e565b6040516107169190613457565b60405180910390f35b61073960048036038101906107349190612d01565b611b65565b604051610746919061325e565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190612c9c565b612195565b005b34801561078457600080fd5b5061078d612267565b60405161079a9190613457565b60405180910390f35b3480156107af57600080fd5b506107b861226d565b6040516107c59190613457565b60405180910390f35b3480156107da57600080fd5b506107e3612273565b6040516107f091906131e3565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b9190612c9c565b612299565b60405161082d919061325e565b60405180910390f35b34801561084257600080fd5b5061084b6122f6565b005b34801561085957600080fd5b50610874600480360381019061086f9190612c9c565b612352565b6040516108819190613457565b60405180910390f35b34801561089657600080fd5b506108b160048036038101906108ac9190612ee1565b61239b565b005b3480156108bf57600080fd5b506108da60048036038101906108d59190612e3d565b61243b565b6040516108e7919061325e565b60405180910390f35b3480156108fc57600080fd5b5061090561246e565b6040516109129190613457565b60405180910390f35b34801561092757600080fd5b50610942600480360381019061093d9190612f1d565b612478565b005b61094c610cae565b604051610959919061325e565b60405180910390f35b34801561096e57600080fd5b50610977612530565b60405161098491906131e3565b60405180910390f35b34801561099957600080fd5b506109a2612556565b6040516109af9190613457565b60405180910390f35b3480156109c457600080fd5b506109cd61255c565b6040516109da9190613457565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a059190612c9c565b612562565b005b610a266004803603810190610a219190612e8f565b612634565b604051610a339190613457565b60405180910390f35b348015610a4857600080fd5b50610a51612671565b604051610a5e919061325e565b60405180910390f35b610a816004803603810190610a7c9190612c9c565b6126a2565b604051610a8e919061325e565b60405180910390f35b348015610aa357600080fd5b50610aac6127eb565b604051610ab99190613457565b60405180910390f35b348015610ace57600080fd5b50610ae96004803603810190610ae49190612c9c565b6127f1565b604051610af893929190613472565b60405180910390f35b348015610b0d57600080fd5b50610b1661286f565b604051610b2a989796959493929190613279565b60405180910390f35b348015610b3f57600080fd5b50610b486128d6565b604051610b55919061325e565b60405180910390f35b348015610b6a57600080fd5b50610b736128e9565b604051610b809190613457565b60405180910390f35b348015610b9557600080fd5b50610bb06004803603810190610bab9190612db4565b6128ef565b005b348015610bbe57600080fd5b50610bc76129d9565b005b348015610bd557600080fd5b50610bde612a84565b604051610beb9190613457565b60405180910390f35b348015610c0057600080fd5b50610c1b6004803603810190610c169190612c9c565b612a8a565b005b348015610c2957600080fd5b50610c32612b5b565b604051610c3f919061325e565b60405180910390f35b348015610c5457600080fd5b50610c6f6004803603810190610c6a9190612e8f565b612b88565b604051610c7c9190613457565b60405180910390f35b348015610c9157600080fd5b50610cac6004803603810190610ca79190612e8f565b612b9b565b005b6000610cdd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611b65565b905090565b6000808360148190555082601581905550601454601554915091509250929050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610f5857600080600090505b600115610e0c57610d8981612634565b9150600181610d9891906134e3565b9050600073ffffffffffffffffffffffffffffffffffffffff166017600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e0757610e0c565b610d79565b846017600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f555783601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600354600454915091509091565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906132f7565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060011515601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613417565b60405180910390fd5b60011515601260009054906101000a900460ff1615151461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690613337565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690613377565b60405180910390fd5b6000839050600034905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161124691906131e3565b60206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112969190612eb8565b905060006112a387611a1e565b9050600d548310156112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e1906133f7565b60405180910390fd5b8082101561132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490613437565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b815260040161138c939291906131fe565b602060405180830381600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113de9190612e66565b507f79c46aa1e9414f1ec17fe2ddf0a792ed052464f117504d03be80e05734ce37c88160405161140e9190613457565b60405180910390a16001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600061147a338861177e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115ff5760008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115309190612eb8565b90508573ffffffffffffffffffffffffffffffffffffffff166323b872dd600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168484600a61157f91906135bd565b60145461158c91906136db565b6040518463ffffffff1660e01b81526004016115aa939291906131fe565b602060405180830381600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc9190612e66565b50505b6116093382610d28565b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611672573d6000803e3d6000fd5b5060019550505050505092915050565b60095481565b60006116b6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b65565b9050919050565b6000601260009054906101000a900460ff16905090565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f906132f7565b60405180910390fd5b80600d8190555050565b600d5481565b600e5481565b600080601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184f576017600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461188b5780915050611891565b60009150505b92915050565b60006118c5600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611083565b9050919050565b600f5481565b6000816014819055506014549050919050565b60105481565b600060016011546118fc91906134e3565b6011819055506a0fffffffffffffffffffff60115411156119205760006011819055505b61192b601154612634565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b5906132f7565b60405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600d8190555080601081905550611a17838361239b565b5050505050565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6c57600080fd5b505afa158015611a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa49190612eb8565b9050600081600a611ab591906135bd565b600e54611ac291906136db565b9050600082600a611ad391906135bd565b600f54611ae091906136db565b90506000611aec6118eb565b905060008282611afc9190613803565b9050828482611b0b91906134e3565b11611b1f578381611b1c91906134e3565b90505b600060105486611b2f9190613735565b600a611b3b91906135bd565b9050808183611b4a9190613539565b611b5491906136db565b915081975050505050505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90613377565b60405180910390fd5b6000839050600034905060008273ffffffffffffffffffffffffffffffffffffffff166370a0823160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611c3b91906131e3565b60206040518083038186803b158015611c5357600080fd5b505afa158015611c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8b9190612eb8565b9050600254821015611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906133b7565b60405180910390fd5b6000429050611cdf6122f6565b600060035411611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90613317565b60405180910390fd5b6006548111158015611d4a575060001515600760009054906101000a900460ff16151514155b611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613397565b60405180910390fd5b600060045460035485611d9c91906136db565b611da69190613539565b905060008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611df057600080fd5b505afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e289190612eb8565b6012611e349190613735565b90506000811015611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190613357565b60405180910390fd5b80600a611e8791906135bd565b82611e929190613539565b915081841015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90613437565b60405180910390fd5b60008211611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f11906133d7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633856040518463ffffffff1660e01b8152600401611f77939291906131fe565b602060405180830381600087803b158015611f9157600080fd5b505af1158015611fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc99190612e66565b506000611fd6338a61177e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120d7578673ffffffffffffffffffffffffffffffffffffffff166323b872dd60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127108760155461205b91906136db565b6120659190613539565b6040518463ffffffff1660e01b8152600401612083939291906131fe565b602060405180830381600087803b15801561209d57600080fd5b505af11580156120b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d59190612e66565b505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561213d573d6000803e3d6000fd5b506121483382610d28565b507fe27bc0da3aa888f5d97abb6ca851d9bccdc77cc8a8b1b3715e3b5ee034c44e8a6003548460405161217c9291906134a9565b60405180910390a1600197505050505050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a906132f7565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035481565b60085481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060011515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b6000429050600060085411801561230f5750600a548110155b801561231d5750600b548111155b1561234f57600854600381905550600954600481905550600a54600581905550600b5460068190555060006008819055505b50565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612420906132f7565b60405180910390fd5b81600e8190555080600f819055505050565b600081601260006101000a81548160ff021916908315150217905550601260009054906101000a900460ff169050919050565b6000600d54905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fd906132f7565b60405180910390fd5b836008819055508260098190555081600a8190555080600b8190555061252a6122f6565b50505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e7906132f7565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600044424143338660405160200161265196959493929190613173565b6040516020818303038152906040528051906020012060001c9050919050565b600080601260006101000a81548160ff021916908315150217905550601260009054906101000a900460ff16905090565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126e391906131e3565b60206040518083038186803b1580156126fb57600080fd5b505afa15801561270f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127339190612eb8565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612790929190613235565b602060405180830381600087803b1580156127aa57600080fd5b505af11580156127be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e29190612e66565b92505050919050565b600a5481565b60008060008060011515601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050600d54601260009054906101000a900460ff1682935093509350509193909250565b600080600080600080600080600060065442111580156128a3575060001515600760009054906101000a900460ff16151514155b905080600254600354600454601454601554600e54600f5498509850985098509850985098509850509091929394959697565b600760009054906101000a900460ff1681565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461297d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612974906132f7565b60405180910390fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550846002819055506129d184848484612478565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5e906132f7565b60405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f906132f7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006006544211158015612b83575060001515600760009054906101000a900460ff16151514155b905090565b6000816015819055506015549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c20906132f7565b60405180910390fd5b8060108190555050565b600081359050612c4281613abb565b92915050565b600081359050612c5781613ad2565b92915050565b600081519050612c6c81613ad2565b92915050565b600081359050612c8181613ae9565b92915050565b600081519050612c9681613ae9565b92915050565b600060208284031215612cae57600080fd5b6000612cbc84828501612c33565b91505092915050565b60008060408385031215612cd857600080fd5b6000612ce685828601612c33565b9250506020612cf785828601612c33565b9150509250929050565b60008060408385031215612d1457600080fd5b6000612d2285828601612c33565b9250506020612d3385828601612c72565b9150509250929050565b600080600080600060a08688031215612d5557600080fd5b6000612d6388828901612c33565b9550506020612d7488828901612c72565b9450506040612d8588828901612c72565b9350506060612d9688828901612c72565b9250506080612da788828901612c72565b9150509295509295909350565b60008060008060008060c08789031215612dcd57600080fd5b6000612ddb89828a01612c33565b9650506020612dec89828a01612c72565b9550506040612dfd89828a01612c72565b9450506060612e0e89828a01612c72565b9350506080612e1f89828a01612c72565b92505060a0612e3089828a01612c72565b9150509295509295509295565b600060208284031215612e4f57600080fd5b6000612e5d84828501612c48565b91505092915050565b600060208284031215612e7857600080fd5b6000612e8684828501612c5d565b91505092915050565b600060208284031215612ea157600080fd5b6000612eaf84828501612c72565b91505092915050565b600060208284031215612eca57600080fd5b6000612ed884828501612c87565b91505092915050565b60008060408385031215612ef457600080fd5b6000612f0285828601612c72565b9250506020612f1385828601612c72565b9150509250929050565b60008060008060808587031215612f3357600080fd5b6000612f4187828801612c72565b9450506020612f5287828801612c72565b9350506040612f6387828801612c72565b9250506060612f7487828801612c72565b91505092959194509250565b612f91612f8c8261377b565b6137d5565b82525050565b612fa081613769565b82525050565b612fb7612fb282613769565b6137c3565b82525050565b612fc68161378d565b82525050565b6000612fd96022836134d2565b9150612fe4826138ac565b604082019050919050565b6000612ffc6019836134d2565b9150613007826138fb565b602082019050919050565b600061301f6013836134d2565b915061302a82613924565b602082019050919050565b60006130426013836134d2565b915061304d8261394d565b602082019050919050565b60006130656018836134d2565b915061307082613976565b602082019050919050565b60006130886016836134d2565b91506130938261399f565b602082019050919050565b60006130ab6013836134d2565b91506130b6826139c8565b602082019050919050565b60006130ce6019836134d2565b91506130d9826139f1565b602082019050919050565b60006130f16028836134d2565b91506130fc82613a1a565b604082019050919050565b60006131146010836134d2565b915061311f82613a69565b602082019050919050565b60006131376020836134d2565b915061314282613a92565b602082019050919050565b613156816137b9565b82525050565b61316d613168826137b9565b6137f9565b82525050565b600061317f828961315c565b60208201915061318f828861315c565b60208201915061319f8287612f80565b6014820191506131af828661315c565b6020820191506131bf8285612fa6565b6014820191506131cf828461315c565b602082019150819050979650505050505050565b60006020820190506131f86000830184612f97565b92915050565b60006060820190506132136000830186612f97565b6132206020830185612f97565b61322d604083018461314d565b949350505050565b600060408201905061324a6000830185612f97565b613257602083018461314d565b9392505050565b60006020820190506132736000830184612fbd565b92915050565b60006101008201905061328f600083018b612fbd565b61329c602083018a61314d565b6132a9604083018961314d565b6132b6606083018861314d565b6132c3608083018761314d565b6132d060a083018661314d565b6132dd60c083018561314d565b6132ea60e083018461314d565b9998505050505050505050565b6000602082019050818103600083015261331081612fcc565b9050919050565b6000602082019050818103600083015261333081612fef565b9050919050565b6000602082019050818103600083015261335081613012565b9050919050565b6000602082019050818103600083015261337081613035565b9050919050565b6000602082019050818103600083015261339081613058565b9050919050565b600060208201905081810360008301526133b08161307b565b9050919050565b600060208201905081810360008301526133d08161309e565b9050919050565b600060208201905081810360008301526133f0816130c1565b9050919050565b60006020820190508181036000830152613410816130e4565b9050919050565b6000602082019050818103600083015261343081613107565b9050919050565b600060208201905081810360008301526134508161312a565b9050919050565b600060208201905061346c600083018461314d565b92915050565b6000606082019050613487600083018661314d565b6134946020830185612fbd565b6134a16040830184612fbd565b949350505050565b60006040820190506134be600083018561314d565b6134cb602083018461314d565b9392505050565b600082825260208201905092915050565b60006134ee826137b9565b91506134f9836137b9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561352e5761352d613834565b5b828201905092915050565b6000613544826137b9565b915061354f836137b9565b92508261355f5761355e613863565b5b828204905092915050565b6000808291508390505b60018511156135b4578086048111156135905761358f613834565b5b600185161561359f5780820291505b80810290506135ad8561389f565b9450613574565b94509492505050565b60006135c8826137b9565b91506135d3836137b9565b92506136007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613608565b905092915050565b60008261361857600190506136d4565b8161362657600090506136d4565b816001811461363c576002811461364657613675565b60019150506136d4565b60ff84111561365857613657613834565b5b8360020a91508482111561366f5761366e613834565b5b506136d4565b5060208310610133831016604e8410600b84101617156136aa5782820a9050838111156136a5576136a4613834565b5b6136d4565b6136b7848484600161356a565b925090508184048111156136ce576136cd613834565b5b81810290505b9392505050565b60006136e6826137b9565b91506136f1836137b9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561372a57613729613834565b5b828202905092915050565b6000613740826137b9565b915061374b836137b9565b92508282101561375e5761375d613834565b5b828203905092915050565b600061377482613799565b9050919050565b600061378682613799565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006137ce826137e7565b9050919050565b60006137e0826137e7565b9050919050565b60006137f282613892565b9050919050565b6000819050919050565b600061380e826137b9565b9150613819836137b9565b92508261382957613828613863565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160601b9050919050565b60008160011c9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b7f506c6561736520736574207072696365206f6620746f6b656e00000000000000600082015250565b7f436c61696d65642069732066696e697368656400000000000000000000000000600082015250565b7f446563696d616c7320697320696e76616c696400000000000000000000000000600082015250565b7f506c656173652073657420746f6b656e20616464726573730000000000000000600082015250565b7f546f6b656e2073616c652069732066696e697368656400000000000000000000600082015250565b7f596f7520616d6f756e7420746f20736d616c6c00000000000000000000000000600082015250565b7f596f7520616d6f756e7420746f6b656e20746f20736d616c6c00000000000000600082015250565b7f596f75206e65656420746f2073656e6420736f6d65206665652e20466565207460008201527f6f20736d616c6c2e000000000000000000000000000000000000000000000000602082015250565b7f4164647265737320697320657869737400000000000000000000000000000000600082015250565b7f4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665600082015250565b613ac481613769565b8114613acf57600080fd5b50565b613adb8161378d565b8114613ae657600080fd5b50565b613af2816137b9565b8114613afd57600080fd5b5056fea26469706673582212206515136f37d6862745cc7713d6015754da505130f364f94220ea516ed2b3ce3164736f6c63430008030033

Deployed ByteCode Sourcemap

1386:12336:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4294:5;:3;:5::i;:::-;;1386:12336;;;;;12037:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;983:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12610:630;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4319:138;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5164:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8869:1281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1736:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10300:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1548:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8205:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1963:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1994;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13381:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10158:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2025:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12449:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2056:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11534:234;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7762:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10885:637;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6123:1509;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4133:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1513:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1704:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1447:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10398:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5536:422;;;;;;;;;;;;;:::i;:::-;;13252:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8447:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8734:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10535:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3845:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7640:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1928:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1482:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1587:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8091:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11780:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8616:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5283:241;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1772:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10636:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4703:449;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1665:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1809:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3539:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4614:77;;;;;;;;;;;;;:::i;:::-;;1627:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1262:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4469:133;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12294:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8317:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7640:97;7678:4;7702:26;7711:13;;;;;;;;;;;7726:1;7702:8;:26::i;:::-;7695:33;;7640:97;:::o;12037:245::-;12110:7;12119;12162:11;12139:20;:34;;;;12205:9;12184:18;:30;;;;12233:20;;12255:18;;12225:49;;;;12037:245;;;;;:::o;983:28::-;;;;;;;;;;;;:::o;12610:630::-;12680:7;12727:1;12704:9;:19;12714:8;12704:19;;;;;;;;;;;;;;;;:24;12700:496;;;12744:12;12771:13;12787:1;12771:17;;12803:203;12809:4;12803:203;;;12854:22;12870:5;12854:15;:22::i;:::-;12847:29;;12904:1;12895:10;;;;;:::i;:::-;;;12960:1;12928:34;;:14;:20;12943:4;12928:20;;;;;;;;;;;;;;;;;;;;;:34;;;12924:66;;;12985:5;;12924:66;12803:203;;;13043:8;13020:14;:20;13035:4;13020:20;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13088:4;13066:9;:19;13076:8;13066:19;;;;;;;;;;;;;;;:26;;;;13128:1;13110:20;;:6;:20;;;13107:77;;13178:6;13149:16;:26;13166:8;13149:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13107:77;12700:496;;;13213:9;:19;13223:8;13213:19;;;;;;;;;;;;;;;;13206:26;;12610:630;;;;:::o;4319:138::-;4363:13;4378:17;4416:13;;4431:17;;4408:41;;;;4319:138;;:::o;5164:107::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;5249:14:::1;5233:13;;:30;;;;;;;;;;;;;;;;;;5164:107:::0;:::o;8869:1281::-;8959:4;9017;8984:37;;:17;:29;9002:10;8984:29;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;8976:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9073:4;9061:16;;:8;;;;;;;;;;;:16;;;9053:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9146:1;9120:28;;:14;:28;;;;9112:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9188:11;9208:14;9188:35;;9234:19;9256:9;9234:31;;9276:21;9300:5;:15;;;9324:13;;;;;;;;;;;9300:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9276:63;;9350:20;9373:33;9391:14;9373:17;:33::i;:::-;9350:56;;9440:9;;9425:11;:24;;9417:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9530:12;9513:13;:29;;9505:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:5;:18;;;9609:13;;;;;;;;;;;9624:10;9636:12;9590:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9665:24;9676:12;9665:24;;;;;;:::i;:::-;;;;;;;;9732:4;9700:17;:29;9718:10;9700:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9747:14;9764:44;9782:10;9794:13;9764:17;:44::i;:::-;9747:61;;9841:1;9823:20;;:6;:20;;;9819:195;;9869:16;9888:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9869:35;;9919:5;:18;;;9938:13;;;;;;;;;;;9953:6;9991:8;9985:2;:14;;;;:::i;:::-;9961:20;;:39;;;;:::i;:::-;9919:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9819:195;;10024:31;10036:10;10048:6;10024:11;:31::i;:::-;;10074:13;;;;;;;;;;;10066:31;;:54;10098:21;10066:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:4;10131:11;;;;;;;8869:1281;;;;:::o;1736:29::-;;;;:::o;5970:141::-;6041:4;6065:38;6074:13;;;;;;;;;;;6089;6065:8;:38::i;:::-;6058:45;;5970:141;;;:::o;10300:80::-;10339:4;10363:8;;;;;;;;;;;10356:15;;10300:80;:::o;1548:32::-;;;;:::o;8205:98::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8285:10:::1;8273:9;:22;;;;8205:98:::0;:::o;1963:24::-;;;;:::o;1994:::-;;;;:::o;13381:338::-;13469:7;13489:14;13506:16;:26;13523:8;13506:26;;;;;;;;;;;;;;;;;;;;;;;;;13489:43;;13565:1;13547:20;;:6;:20;;;13543:77;;;13591:14;:29;13606:13;13591:29;;;;;;;;;;;;;;;;;;;;;13582:38;;13543:77;13645:10;13635:20;;:6;:20;;;13631:52;;13677:6;13670:13;;;;;13631:52;13709:1;13694:17;;;13381:338;;;;;:::o;10158:134::-;10219:4;10243:40;10254:13;;;;;;;;;;;10269;10243:10;:40::i;:::-;10236:47;;10158:134;;;:::o;2025:24::-;;;;:::o;12449:149::-;12503:7;12546:6;12523:20;:29;;;;12570:20;;12563:27;;12449:149;;;:::o;2056:28::-;;;;:::o;11534:234::-;11567:7;11612:1;11599:10;;:14;;;;:::i;:::-;11586:10;:27;;;;11641:23;11628:10;;:36;11624:92;;;11703:1;11690:10;:14;;;;11624:92;11733:27;11749:10;;11733:15;:27::i;:::-;11726:34;;11534:234;:::o;7762:316::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7933:14:::1;7917:13;;:30;;;;;;;;;;;;;;;;;;7970:10;7958:9;:22;;;;8007:13;7991;:29;;;;8031:39;8045:11;8058;8031:13;:39::i;:::-;7762:316:::0;;;;;:::o;10885:637::-;10951:7;10970:11;10990:14;10970:35;;11016:13;11032:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11016:32;;11059:11;11099:8;11085:2;:23;;;;:::i;:::-;11073:9;;:35;;;;:::i;:::-;11059:49;;11119:11;11159:8;11145:2;:23;;;;:::i;:::-;11133:9;;:35;;;;:::i;:::-;11119:49;;11179:20;11202:8;:6;:8::i;:::-;11179:31;;11221:14;11253:3;11238:12;:18;;;;:::i;:::-;11221:35;;11287:3;11280;11271:6;:12;;;;:::i;:::-;:19;11267:82;;11334:3;11325:6;:12;;;;:::i;:::-;11316:21;;11267:82;11369:21;11418:13;;11407:8;:24;;;;:::i;:::-;11393:2;:39;;;;:::i;:::-;11369:63;;11477:13;11461;11452:6;:22;;;;:::i;:::-;:38;;;;:::i;:::-;11443:47;;11508:6;11501:13;;;;;;;;;10885:637;;;:::o;6123:1509::-;6211:4;6262:1;6236:28;;:14;:28;;;;6228:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6304:11;6324:14;6304:35;;6350:19;6372:9;6350:31;;6392:21;6416:5;:15;;;6440:13;;;;;;;;;;6416:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6392:63;;6489:9;;6474:11;:24;;6466:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6533:20;6556:15;6533:38;;6582:12;:10;:12::i;:::-;6629:1;6613:13;;:17;6605:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6695:16;;6679:12;:32;;:58;;;;;6732:5;6715:22;;:13;;;;;;;;;;;:22;;;;6679:58;6671:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;6775:18;6826:17;;6810:13;;6796:11;:27;;;;:::i;:::-;:47;;;;:::i;:::-;6775:68;;6854:16;6878:5;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6873:2;:21;;;;:::i;:::-;6854:40;;6925:1;6913:8;:13;;6905:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6994:8;6988:2;:14;;;;:::i;:::-;6974:10;:29;;;;:::i;:::-;6961:42;;7039:10;7022:13;:27;;7014:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7118:1;7105:10;:14;7097:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;7160:5;:18;;;7179:13;;;;;;;;;;7194:10;7206;7160:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7228:14;7245:44;7263:10;7275:13;7245:17;:44::i;:::-;7228:61;;7322:1;7304:20;;:6;:20;;;7300:145;;7350:5;:18;;;7369:13;;;;;;;;;;7384:6;7426:5;7413:10;7392:18;;:31;;;;:::i;:::-;:39;;;;:::i;:::-;7350:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7300:145;7463:13;;;;;;;;;;7455:31;;:54;7487:21;7455:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7520:31;7532:10;7544:6;7520:11;:31::i;:::-;;7567:35;7576:13;;7591:10;7567:35;;;;;;;:::i;:::-;;;;;;;;7620:4;7613:11;;;;;;;;;6123:1509;;;;:::o;4133:114::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4225:14:::1;4209:13;;:30;;;;;;;;;;;;;;;;;;4133:114:::0;:::o;1513:28::-;;;;:::o;1704:25::-;;;;:::o;1447:28::-;;;;;;;;;;;;;:::o;10398:125::-;10455:4;10510;10479:35;;:17;:27;10497:8;10479:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;10472:42;;10398:125;;;:::o;5536:422::-;5576:20;5599:15;5576:38;;5642:1;5629:10;;:14;:49;;;;;5663:15;;5647:12;:31;;5629:49;:82;;;;;5698:13;;5682:12;:29;;5629:82;5625:326;;;5753:10;;5737:13;:26;;;;5798:14;;5778:17;:34;;;;5848:15;;5827:18;:36;;;;5897:13;;5878:16;:32;;;;5938:1;5925:10;:14;;;;5625:326;5536:422;:::o;13252:117::-;13315:7;13342:9;:19;13352:8;13342:19;;;;;;;;;;;;;;;;13335:26;;13252:117;;;:::o;8447:157::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:11:::1;8539:9;:23;;;;8585:11;8573:9;:23;;;;8447:157:::0;;:::o;8734:124::-;8785:4;8814:9;8802:8;;:21;;;;;;;;;;;;;;;;;;8842:8;;;;;;;;;;;8835:15;;8734:124;;;:::o;10535:85::-;10575:7;10602:9;;10595:16;;10535:85;:::o;3845:279::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;3976:6:::1;3963:10;:19;;;;4010:9;3993:14;:26;;;;4048:10;4030:15;:28;;;;4085:8;4069:13;:24;;;;4104:12;:10;:12::i;:::-;3845:279:::0;;;;:::o;1928:28::-;;;;;;;;;;;;;:::o;1482:24::-;;;;:::o;1587:33::-;;;;:::o;8091:102::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8177:8:::1;8161:13;;:24;;;;;;;;;;;;;;;;;;8091:102:::0;:::o;11780:229::-;11849:7;11910:16;11928:15;11945:14;11961:12;11975:10;11987:11;11893:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11883:117;;;;;;11875:126;;11868:133;;11780:229;;;:::o;8616:106::-;8653:4;8682:5;8670:8;;:17;;;;;;;;;;;;;;;;;;8706:8;;;;;;;;;;;8699:15;;8616:106;:::o;5283:241::-;5349:4;5366:11;5386:14;5366:35;;5412:15;5430:5;:15;;;5454:4;5430:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5412:48;;5478:5;:14;;;5493:13;;;;;;;;;;5508:7;5478:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5471:45;;;;5283:241;;;:::o;1772:30::-;;;;:::o;10636:237::-;10694:11;10707:19;10728:15;10756:16;10807:4;10776:35;;:17;:27;10794:8;10776:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;10756:56;;10831:9;;10842:8;;;;;;;;;;;10852:11;10823:41;;;;;;;10636:237;;;;;:::o;4703:449::-;4746:12;4760:18;4780:13;4795:17;4814:19;4835:17;4854:24;4880;4916:19;4958:16;;4939:15;:35;;:61;;;;;4995:5;4978:22;;:13;;;;;;;;;;;:22;;;;4939:61;4916:85;;5020:14;5036:9;;5047:13;;5062:17;;5081:20;;5103:18;;5123:9;;5134;;5012:132;;;;;;;;;;;;;;;;;4703:449;;;;;;;;:::o;1665:32::-;;;;;;;;;;;;;:::o;1809:28::-;;;;:::o;3539:297::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:14:::1;3705:13;;:30;;;;;;;;;;;;;;;;;;3758:10;3746:9;:22;;;;3779:49;3788:6;3796:9;3807:10;3819:8;3779;:49::i;:::-;3539:297:::0;;;;;;:::o;4614:77::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4678:5:::1;4662:13;;:21;;;;;;;;;;;;;;;;;;4614:77::o:0;1627:31::-;;;;:::o;1262:117::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;1357:14:::1;1341:13;::::0;:30:::1;;;;;;;;;;;;;;;;;;1262:117:::0;:::o;4469:133::-;4507:4;4551:16;;4532:15;:35;;:61;;;;;4588:5;4571:22;;:13;;;;;;;;;;;:22;;;;4532:61;4524:70;;4469:133;:::o;12294:143::-;12346:7;12387:6;12366:18;:27;;;;12411:18;;12404:25;;12294:143;;;:::o;8317:114::-;1161:13;;;;;;;;;;1147:27;;:10;:27;;;1125:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8409:14:::1;8393:13;:30;;;;8317:114:::0;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:407::-;;;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:53;1250:7;1241:6;1230:9;1226:22;1205:53;:::i;:::-;1195:63;;1151:117;1307:2;1333:53;1378:7;1369:6;1358:9;1354:22;1333:53;:::i;:::-;1323:63;;1278:118;1079:324;;;;;:::o;1409:407::-;;;1534:2;1522:9;1513:7;1509:23;1505:32;1502:2;;;1550:1;1547;1540:12;1502:2;1593:1;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1564:117;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1492:324;;;;;:::o;1822:844::-;;;;;;1998:3;1986:9;1977:7;1973:23;1969:33;1966:2;;;2015:1;2012;2005:12;1966:2;2058:1;2083:53;2128:7;2119:6;2108:9;2104:22;2083:53;:::i;:::-;2073:63;;2029:117;2185:2;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2156:118;2313:2;2339:53;2384:7;2375:6;2364:9;2360:22;2339:53;:::i;:::-;2329:63;;2284:118;2441:2;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2412:118;2569:3;2596:53;2641:7;2632:6;2621:9;2617:22;2596:53;:::i;:::-;2586:63;;2540:119;1956:710;;;;;;;;:::o;2672:990::-;;;;;;;2865:3;2853:9;2844:7;2840:23;2836:33;2833:2;;;2882:1;2879;2872:12;2833:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;3436:3;3463:53;3508:7;3499:6;3488:9;3484:22;3463:53;:::i;:::-;3453:63;;3407:119;3565:3;3592:53;3637:7;3628:6;3617:9;3613:22;3592:53;:::i;:::-;3582:63;;3536:119;2823:839;;;;;;;;:::o;3668:256::-;;3773:2;3761:9;3752:7;3748:23;3744:32;3741:2;;;3789:1;3786;3779:12;3741:2;3832:1;3857:50;3899:7;3890:6;3879:9;3875:22;3857:50;:::i;:::-;3847:60;;3803:114;3731:193;;;;:::o;3930:278::-;;4046:2;4034:9;4025:7;4021:23;4017:32;4014:2;;;4062:1;4059;4052:12;4014:2;4105:1;4130:61;4183:7;4174:6;4163:9;4159:22;4130:61;:::i;:::-;4120:71;;4076:125;4004:204;;;;:::o;4214:262::-;;4322:2;4310:9;4301:7;4297:23;4293:32;4290:2;;;4338:1;4335;4328:12;4290:2;4381:1;4406:53;4451:7;4442:6;4431:9;4427:22;4406:53;:::i;:::-;4396:63;;4352:117;4280:196;;;;:::o;4482:284::-;;4601:2;4589:9;4580:7;4576:23;4572:32;4569:2;;;4617:1;4614;4607:12;4569:2;4660:1;4685:64;4741:7;4732:6;4721:9;4717:22;4685:64;:::i;:::-;4675:74;;4631:128;4559:207;;;;:::o;4772:407::-;;;4897:2;4885:9;4876:7;4872:23;4868:32;4865:2;;;4913:1;4910;4903:12;4865:2;4956:1;4981:53;5026:7;5017:6;5006:9;5002:22;4981:53;:::i;:::-;4971:63;;4927:117;5083:2;5109:53;5154:7;5145:6;5134:9;5130:22;5109:53;:::i;:::-;5099:63;;5054:118;4855:324;;;;;:::o;5185:698::-;;;;;5344:3;5332:9;5323:7;5319:23;5315:33;5312:2;;;5361:1;5358;5351:12;5312:2;5404:1;5429:53;5474:7;5465:6;5454:9;5450:22;5429:53;:::i;:::-;5419:63;;5375:117;5531:2;5557:53;5602:7;5593:6;5582:9;5578:22;5557:53;:::i;:::-;5547:63;;5502:118;5659:2;5685:53;5730:7;5721:6;5710:9;5706:22;5685:53;:::i;:::-;5675:63;;5630:118;5787:2;5813:53;5858:7;5849:6;5838:9;5834:22;5813:53;:::i;:::-;5803:63;;5758:118;5302:581;;;;;;;:::o;5889:189::-;6010:61;6038:32;6064:5;6038:32;:::i;:::-;6010:61;:::i;:::-;6005:3;5998:74;5988:90;;:::o;6084:118::-;6171:24;6189:5;6171:24;:::i;:::-;6166:3;6159:37;6149:53;;:::o;6208:157::-;6313:45;6333:24;6351:5;6333:24;:::i;:::-;6313:45;:::i;:::-;6308:3;6301:58;6291:74;;:::o;6371:109::-;6452:21;6467:5;6452:21;:::i;:::-;6447:3;6440:34;6430:50;;:::o;6486:366::-;;6649:67;6713:2;6708:3;6649:67;:::i;:::-;6642:74;;6725:93;6814:3;6725:93;:::i;:::-;6843:2;6838:3;6834:12;6827:19;;6632:220;;;:::o;6858:366::-;;7021:67;7085:2;7080:3;7021:67;:::i;:::-;7014:74;;7097:93;7186:3;7097:93;:::i;:::-;7215:2;7210:3;7206:12;7199:19;;7004:220;;;:::o;7230:366::-;;7393:67;7457:2;7452:3;7393:67;:::i;:::-;7386:74;;7469:93;7558:3;7469:93;:::i;:::-;7587:2;7582:3;7578:12;7571:19;;7376:220;;;:::o;7602:366::-;;7765:67;7829:2;7824:3;7765:67;:::i;:::-;7758:74;;7841:93;7930:3;7841:93;:::i;:::-;7959:2;7954:3;7950:12;7943:19;;7748:220;;;:::o;7974:366::-;;8137:67;8201:2;8196:3;8137:67;:::i;:::-;8130:74;;8213:93;8302:3;8213:93;:::i;:::-;8331:2;8326:3;8322:12;8315:19;;8120:220;;;:::o;8346:366::-;;8509:67;8573:2;8568:3;8509:67;:::i;:::-;8502:74;;8585:93;8674:3;8585:93;:::i;:::-;8703:2;8698:3;8694:12;8687:19;;8492:220;;;:::o;8718:366::-;;8881:67;8945:2;8940:3;8881:67;:::i;:::-;8874:74;;8957:93;9046:3;8957:93;:::i;:::-;9075:2;9070:3;9066:12;9059:19;;8864:220;;;:::o;9090:366::-;;9253:67;9317:2;9312:3;9253:67;:::i;:::-;9246:74;;9329:93;9418:3;9329:93;:::i;:::-;9447:2;9442:3;9438:12;9431:19;;9236:220;;;:::o;9462:366::-;;9625:67;9689:2;9684:3;9625:67;:::i;:::-;9618:74;;9701:93;9790:3;9701:93;:::i;:::-;9819:2;9814:3;9810:12;9803:19;;9608:220;;;:::o;9834:366::-;;9997:67;10061:2;10056:3;9997:67;:::i;:::-;9990:74;;10073:93;10162:3;10073:93;:::i;:::-;10191:2;10186:3;10182:12;10175:19;;9980:220;;;:::o;10206:366::-;;10369:67;10433:2;10428:3;10369:67;:::i;:::-;10362:74;;10445:93;10534:3;10445:93;:::i;:::-;10563:2;10558:3;10554:12;10547:19;;10352:220;;;:::o;10578:118::-;10665:24;10683:5;10665:24;:::i;:::-;10660:3;10653:37;10643:53;;:::o;10702:157::-;10807:45;10827:24;10845:5;10827:24;:::i;:::-;10807:45;:::i;:::-;10802:3;10795:58;10785:74;;:::o;10865:993::-;;11148:75;11219:3;11210:6;11148:75;:::i;:::-;11248:2;11243:3;11239:12;11232:19;;11261:75;11332:3;11323:6;11261:75;:::i;:::-;11361:2;11356:3;11352:12;11345:19;;11374:91;11461:3;11452:6;11374:91;:::i;:::-;11490:2;11485:3;11481:12;11474:19;;11503:75;11574:3;11565:6;11503:75;:::i;:::-;11603:2;11598:3;11594:12;11587:19;;11616:75;11687:3;11678:6;11616:75;:::i;:::-;11716:2;11711:3;11707:12;11700:19;;11729:75;11800:3;11791:6;11729:75;:::i;:::-;11829:2;11824:3;11820:12;11813:19;;11849:3;11842:10;;11137:721;;;;;;;;;:::o;11864:222::-;;11995:2;11984:9;11980:18;11972:26;;12008:71;12076:1;12065:9;12061:17;12052:6;12008:71;:::i;:::-;11962:124;;;;:::o;12092:442::-;;12279:2;12268:9;12264:18;12256:26;;12292:71;12360:1;12349:9;12345:17;12336:6;12292:71;:::i;:::-;12373:72;12441:2;12430:9;12426:18;12417:6;12373:72;:::i;:::-;12455;12523:2;12512:9;12508:18;12499:6;12455:72;:::i;:::-;12246:288;;;;;;:::o;12540:332::-;;12699:2;12688:9;12684:18;12676:26;;12712:71;12780:1;12769:9;12765:17;12756:6;12712:71;:::i;:::-;12793:72;12861:2;12850:9;12846:18;12837:6;12793:72;:::i;:::-;12666:206;;;;;:::o;12878:210::-;;13003:2;12992:9;12988:18;12980:26;;13016:65;13078:1;13067:9;13063:17;13054:6;13016:65;:::i;:::-;12970:118;;;;:::o;13094:985::-;;13415:3;13404:9;13400:19;13392:27;;13429:65;13491:1;13480:9;13476:17;13467:6;13429:65;:::i;:::-;13504:72;13572:2;13561:9;13557:18;13548:6;13504:72;:::i;:::-;13586;13654:2;13643:9;13639:18;13630:6;13586:72;:::i;:::-;13668;13736:2;13725:9;13721:18;13712:6;13668:72;:::i;:::-;13750:73;13818:3;13807:9;13803:19;13794:6;13750:73;:::i;:::-;13833;13901:3;13890:9;13886:19;13877:6;13833:73;:::i;:::-;13916;13984:3;13973:9;13969:19;13960:6;13916:73;:::i;:::-;13999;14067:3;14056:9;14052:19;14043:6;13999:73;:::i;:::-;13382:697;;;;;;;;;;;:::o;14085:419::-;;14289:2;14278:9;14274:18;14266:26;;14338:9;14332:4;14328:20;14324:1;14313:9;14309:17;14302:47;14366:131;14492:4;14366:131;:::i;:::-;14358:139;;14256:248;;;:::o;14510:419::-;;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14681:248;;;:::o;14935:419::-;;15139:2;15128:9;15124:18;15116:26;;15188:9;15182:4;15178:20;15174:1;15163:9;15159:17;15152:47;15216:131;15342:4;15216:131;:::i;:::-;15208:139;;15106:248;;;:::o;15360:419::-;;15564:2;15553:9;15549:18;15541:26;;15613:9;15607:4;15603:20;15599:1;15588:9;15584:17;15577:47;15641:131;15767:4;15641:131;:::i;:::-;15633:139;;15531:248;;;:::o;15785:419::-;;15989:2;15978:9;15974:18;15966:26;;16038:9;16032:4;16028:20;16024:1;16013:9;16009:17;16002:47;16066:131;16192:4;16066:131;:::i;:::-;16058:139;;15956:248;;;:::o;16210:419::-;;16414:2;16403:9;16399:18;16391:26;;16463:9;16457:4;16453:20;16449:1;16438:9;16434:17;16427:47;16491:131;16617:4;16491:131;:::i;:::-;16483:139;;16381:248;;;:::o;16635:419::-;;16839:2;16828:9;16824:18;16816:26;;16888:9;16882:4;16878:20;16874:1;16863:9;16859:17;16852:47;16916:131;17042:4;16916:131;:::i;:::-;16908:139;;16806:248;;;:::o;17060:419::-;;17264:2;17253:9;17249:18;17241:26;;17313:9;17307:4;17303:20;17299:1;17288:9;17284:17;17277:47;17341:131;17467:4;17341:131;:::i;:::-;17333:139;;17231:248;;;:::o;17485:419::-;;17689:2;17678:9;17674:18;17666:26;;17738:9;17732:4;17728:20;17724:1;17713:9;17709:17;17702:47;17766:131;17892:4;17766:131;:::i;:::-;17758:139;;17656:248;;;:::o;17910:419::-;;18114:2;18103:9;18099:18;18091:26;;18163:9;18157:4;18153:20;18149:1;18138:9;18134:17;18127:47;18191:131;18317:4;18191:131;:::i;:::-;18183:139;;18081:248;;;:::o;18335:419::-;;18539:2;18528:9;18524:18;18516:26;;18588:9;18582:4;18578:20;18574:1;18563:9;18559:17;18552:47;18616:131;18742:4;18616:131;:::i;:::-;18608:139;;18506:248;;;:::o;18760:222::-;;18891:2;18880:9;18876:18;18868:26;;18904:71;18972:1;18961:9;18957:17;18948:6;18904:71;:::i;:::-;18858:124;;;;:::o;18988:418::-;;19163:2;19152:9;19148:18;19140:26;;19176:71;19244:1;19233:9;19229:17;19220:6;19176:71;:::i;:::-;19257:66;19319:2;19308:9;19304:18;19295:6;19257:66;:::i;:::-;19333;19395:2;19384:9;19380:18;19371:6;19333:66;:::i;:::-;19130:276;;;;;;:::o;19412:332::-;;19571:2;19560:9;19556:18;19548:26;;19584:71;19652:1;19641:9;19637:17;19628:6;19584:71;:::i;:::-;19665:72;19733:2;19722:9;19718:18;19709:6;19665:72;:::i;:::-;19538:206;;;;;:::o;19750:169::-;;19868:6;19863:3;19856:19;19908:4;19903:3;19899:14;19884:29;;19846:73;;;;:::o;19925:305::-;;19984:20;20002:1;19984:20;:::i;:::-;19979:25;;20018:20;20036:1;20018:20;:::i;:::-;20013:25;;20172:1;20104:66;20100:74;20097:1;20094:81;20091:2;;;20178:18;;:::i;:::-;20091:2;20222:1;20219;20215:9;20208:16;;19969:261;;;;:::o;20236:185::-;;20293:20;20311:1;20293:20;:::i;:::-;20288:25;;20327:20;20345:1;20327:20;:::i;:::-;20322:25;;20366:1;20356:2;;20371:18;;:::i;:::-;20356:2;20413:1;20410;20406:9;20401:14;;20278:143;;;;:::o;20427:848::-;;;20519:6;20510:15;;20543:5;20534:14;;20557:712;20578:1;20568:8;20565:15;20557:712;;;20673:4;20668:3;20664:14;20658:4;20655:24;20652:2;;;20682:18;;:::i;:::-;20652:2;20732:1;20722:8;20718:16;20715:2;;;21147:4;21140:5;21136:16;21127:25;;20715:2;21197:4;21191;21187:15;21179:23;;21227:32;21250:8;21227:32;:::i;:::-;21215:44;;20557:712;;;20500:775;;;;;;;:::o;21281:285::-;;21365:23;21383:4;21365:23;:::i;:::-;21357:31;;21409:27;21427:8;21409:27;:::i;:::-;21397:39;;21455:104;21492:66;21482:8;21476:4;21455:104;:::i;:::-;21446:113;;21347:219;;;;:::o;21572:1073::-;;21817:8;21807:2;;21838:1;21829:10;;21840:5;;21807:2;21866:4;21856:2;;21883:1;21874:10;;21885:5;;21856:2;21952:4;22000:1;21995:27;;;;22036:1;22031:191;;;;21945:277;;21995:27;22013:1;22004:10;;22015:5;;;22031:191;22076:3;22066:8;22063:17;22060:2;;;22083:18;;:::i;:::-;22060:2;22132:8;22129:1;22125:16;22116:25;;22167:3;22160:5;22157:14;22154:2;;;22174:18;;:::i;:::-;22154:2;22207:5;;;21945:277;;22331:2;22321:8;22318:16;22312:3;22306:4;22303:13;22299:36;22281:2;22271:8;22268:16;22263:2;22257:4;22254:12;22250:35;22234:111;22231:2;;;22387:8;22381:4;22377:19;22368:28;;22422:3;22415:5;22412:14;22409:2;;;22429:18;;:::i;:::-;22409:2;22462:5;;22231:2;22502:42;22540:3;22530:8;22524:4;22521:1;22502:42;:::i;:::-;22487:57;;;;22576:4;22571:3;22567:14;22560:5;22557:25;22554:2;;;22585:18;;:::i;:::-;22554:2;22634:4;22627:5;22623:16;22614:25;;21632:1013;;;;;;:::o;22651:348::-;;22714:20;22732:1;22714:20;:::i;:::-;22709:25;;22748:20;22766:1;22748:20;:::i;:::-;22743:25;;22936:1;22868:66;22864:74;22861:1;22858:81;22853:1;22846:9;22839:17;22835:105;22832:2;;;22943:18;;:::i;:::-;22832:2;22991:1;22988;22984:9;22973:20;;22699:300;;;;:::o;23005:191::-;;23065:20;23083:1;23065:20;:::i;:::-;23060:25;;23099:20;23117:1;23099:20;:::i;:::-;23094:25;;23138:1;23135;23132:8;23129:2;;;23143:18;;:::i;:::-;23129:2;23188:1;23185;23181:9;23173:17;;23050:146;;;;:::o;23202:96::-;;23268:24;23286:5;23268:24;:::i;:::-;23257:35;;23247:51;;;:::o;23304:104::-;;23378:24;23396:5;23378:24;:::i;:::-;23367:35;;23357:51;;;:::o;23414:90::-;;23491:5;23484:13;23477:21;23466:32;;23456:48;;;:::o;23510:126::-;;23587:42;23580:5;23576:54;23565:65;;23555:81;;;:::o;23642:77::-;;23708:5;23697:16;;23687:32;;;:::o;23725:100::-;;23793:26;23813:5;23793:26;:::i;:::-;23782:37;;23772:53;;;:::o;23831:108::-;;23907:26;23927:5;23907:26;:::i;:::-;23896:37;;23886:53;;;:::o;23945:94::-;;24013:20;24027:5;24013:20;:::i;:::-;24002:31;;23992:47;;;:::o;24045:79::-;;24113:5;24102:16;;24092:32;;;:::o;24130:176::-;;24179:20;24197:1;24179:20;:::i;:::-;24174:25;;24213:20;24231:1;24213:20;:::i;:::-;24208:25;;24252:1;24242:2;;24257:18;;:::i;:::-;24242:2;24298:1;24295;24291:9;24286:14;;24164:142;;;;:::o;24312:180::-;24360:77;24357:1;24350:88;24457:4;24454:1;24447:15;24481:4;24478:1;24471:15;24498:180;24546:77;24543:1;24536:88;24643:4;24640:1;24633:15;24667:4;24664:1;24657:15;24684:94;;24765:5;24761:2;24757:14;24736:35;;24726:52;;;:::o;24784:102::-;;24873:5;24870:1;24866:13;24845:34;;24835:51;;;:::o;24892:221::-;25032:34;25028:1;25020:6;25016:14;25009:58;25101:4;25096:2;25088:6;25084:15;25077:29;24998:115;:::o;25119:175::-;25259:27;25255:1;25247:6;25243:14;25236:51;25225:69;:::o;25300:169::-;25440:21;25436:1;25428:6;25424:14;25417:45;25406:63;:::o;25475:169::-;25615:21;25611:1;25603:6;25599:14;25592:45;25581:63;:::o;25650:174::-;25790:26;25786:1;25778:6;25774:14;25767:50;25756:68;:::o;25830:172::-;25970:24;25966:1;25958:6;25954:14;25947:48;25936:66;:::o;26008:169::-;26148:21;26144:1;26136:6;26132:14;26125:45;26114:63;:::o;26183:175::-;26323:27;26319:1;26311:6;26307:14;26300:51;26289:69;:::o;26364:227::-;26504:34;26500:1;26492:6;26488:14;26481:58;26573:10;26568:2;26560:6;26556:15;26549:35;26470:121;:::o;26597:166::-;26737:18;26733:1;26725:6;26721:14;26714:42;26703:60;:::o;26769:182::-;26909:34;26905:1;26897:6;26893:14;26886:58;26875:76;:::o;26957:122::-;27030:24;27048:5;27030:24;:::i;:::-;27023:5;27020:35;27010:2;;27069:1;27066;27059:12;27010:2;27000:79;:::o;27085:116::-;27155:21;27170:5;27155:21;:::i;:::-;27148:5;27145:32;27135:2;;27191:1;27188;27181:12;27135:2;27125:76;:::o;27207:122::-;27280:24;27298:5;27280:24;:::i;:::-;27273:5;27270:35;27260:2;;27319:1;27316;27309:12;27260:2;27250:79;:::o

Swarm Source

ipfs://6515136f37d6862745cc7713d6015754da505130f364f94220ea516ed2b3ce31
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.