Contract 0x0ed7e52944161450477ee417de9cd3a859b14fd0 9

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x2eee0f67cb122f4db824350eff58ef7ef83f4f2874dd90b983145b2765e04b1695621572021-07-29 1:28:0216 secs ago0xfc75becd4a5d84d3052d936c631db5a8d7289f1f IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.0001287342
0xf9494fb3bab31a5ebf7139fbfc66a839766e00c7391b6ea9dff43d4b9261d96695621492021-07-29 1:27:3543 secs ago0xc7b56d3cc617021410b805124bc9593b93f34249 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xecafcc1e519a26623086802d12da40b17b0e1a0d9e2d15082b7742c11790e57395621212021-07-29 1:26:092 mins ago0xf24e569f7b1e23e8f251c6df59ec6da8b80d4860 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xc86476cacd239809cfb8c857812a019674f490c42b04bfc77b45e9914ec3bd2b95621152021-07-29 1:25:512 mins ago0xb02f01eb6099fa8a25637360df289968e9f444d9 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x4608aa8bdbdcd0ef22739f69ab9f3adb25087a8b1c735d46f108953fac71b30595621072021-07-29 1:25:212 mins ago0x45b1cd19bc1fb38c34a1edd22c473895a2703dad IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.000244431
0x31619273f095ba5b12760cc77f50ccd0a798c859d37d25ea9d70117171bb28da95620812021-07-29 1:24:024 mins ago0xa5cdbbe5bf6cb389fc23febd9403e9bffdf8e65c IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x853906c8d3abeaf349e776b6af8f31a75b96588cfe172d410da8f9ae91f3a0c695620672021-07-29 1:23:204 mins ago0x0a580e37459fbc9ead0025bdf19f9734215d3788 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xfc990023454d445cb279bf06f7343637d6bd22db013546b2e06f17908cd8858595620612021-07-29 1:23:025 mins ago0x1c71b9bfad435a57317cb46f20c260015d62539d IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x1dacd54bff76cf3bb8e6db57667699e9e4a6debcb3e07407af543d6f542a450695620332021-07-29 1:21:386 mins ago0x6779eb9bfb1343210326f4dcfdba36cc18d9f483 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x41f982c2a90f3d37e9c78a30452ba6e894273279ba21ed0e7dcc145d9a7bca5895620032021-07-29 1:20:078 mins ago0x6ac3c2b77c07d9768b68064a17875064cc2bbe9d IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xd05dddc86c0b6cfe363a00c963e2d1656325e5920c9b03d4da04fbec9dfb4bc195619572021-07-29 1:17:4910 mins ago0x95c486edbaf1b71a3391de71a1c724c415695e44 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xb598fac7734312b6760f697fdfceaf35ab090c023456271cee015d515fbaff0595619292021-07-29 1:16:2411 mins ago0xe302ccaeae3423bedcbc023c5d2ab036900cacfc IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x1a097ba96e06402e0f0542ef42b5b9ebaf043e0c55999e315dd08f3990a9180695618442021-07-29 1:12:0816 mins ago0x5fb68592a422c775e8cd4eccf9037dcee17934a1 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x8599be41af8a0b9649cdf091b35fcc889f8abb6f2beb292af67031c5c3792fb695618132021-07-29 1:10:3517 mins ago0x2e5dc1a778d38c40b08321b19ab9631b510216f5 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x6a805d02ad675817fec22e6133b3df1d86705a25db00d835fb39381bd01d6ca495617422021-07-29 1:07:0121 mins ago0xbfdb37e5d4468bfc0f1c5a12964dcf2e59b43e96 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xd428cd0feac661c8d9a8afc0354898a822075155f83411971fd24070b5b6ada295617042021-07-29 1:05:0723 mins ago0x6608b310cf0a1c280356a5e4f77272a32f6fba50 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.000264852
0xeb60f9d9bce611e9450292a0de58ab8d97ca15f5cb0ad56ba6c89f37ebbc0c8795616742021-07-29 1:03:3724 mins ago0xfafebd869cc2b620b4af916e6320c478ac6cd077 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.000266652
0x1ff18a88db51f8ffe1f5c543566b12515dfb8ba6c1a52d13b163b86bbd6f38b595615972021-07-29 0:59:4628 mins ago0xb922090fef48597a2bdbb0792fb58e7ba3b76ce0 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xc47f47ec62e1eac9026217e5732fc7eaabd8a8d13dfbd057085b0333a23cfba195615822021-07-29 0:59:0029 mins ago0x9d3d24c31f5b8884a9bd9a4ca478260275d30ab8 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x89a3a6c8c9347ec1f9af79579a0af967ae6c6726d6ca12f1f1557ed05f6e68db95615822021-07-29 0:59:0029 mins ago0x80408b20aa43cf0908890fba865cc8adaafaeec4 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x0bc0d107d8f2c669d73d6571a5e9b28466e6a2d03a9f82b9bbe51abceab4c5d295615682021-07-29 0:58:1830 mins ago0xc4badb2b5d844eecdd76e984dee06d97cc3eb6ab IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xfb9f0a0eb9a7eef9c91dfa0c0bc005e05c0f63713c14f433d6e9bd5c68abd49595615562021-07-29 0:57:4230 mins ago0xc30dabeb51a1cf9e61cabd7c6b541ec1b7aef1d6 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00012621
0x98a50c322df52d592276201b23b445ff83fec719b19b5a25ef33d8f677cef5dc95615482021-07-29 0:57:1831 mins ago0x0ebf9ce4f09008b88f0f07f4e6a10bc1e99b8cc3 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0x4024f4e97b0f35a0143a1131cc8e0b1b6769b5b1f5a95f0b53aa3eb92f622b3395615032021-07-29 0:55:0033 mins ago0xdc639a87f581c084501617676880de46dc467ec9 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
0xac25ffb5c1e14e29b2c54de31b3133c11c922b4826d04ba36d937d1ed9bc9c8595613842021-07-29 0:49:0339 mins ago0xfcfce8bd54755e60f7cc45f774aac90eeae66286 IN  0x0ed7e52944161450477ee417de9cd3a859b14fd00 BNB0.00022221
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7d3ac977834584c916e2ba929e74c0ed6ebac6f1a1f5512eeebe5320dbe94bca68107062021-04-23 8:43:4396 days 16 hrs ago PancakeSwap: Factory v2  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PancakePair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-28
*/

/**
 *Submitted for verification at BscScan.com on 2021-04-23
*/

// File: contracts\interfaces\IPancakePair.sol

pragma solidity >=0.5.0;

interface IPancakePair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

// File: contracts\interfaces\IPancakeERC20.sol

pragma solidity >=0.5.0;

interface IPancakeERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

// File: contracts\libraries\SafeMath.sol

pragma solidity =0.5.16;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

// File: contracts\PancakeERC20.sol

pragma solidity =0.5.16;


contract PancakeERC20 is IPancakeERC20 {
    using SafeMath for uint;

    string public constant name = 'Pancake LPs';
    string public constant symbol = 'Cake-LP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint) public nonces;

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

    constructor() public {
        uint chainId;
        assembly {
            chainId := chainid
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes(name)),
                keccak256(bytes('1')),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(address owner, address spender, uint value) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(address from, address to, uint value) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        if (allowance[from][msg.sender] != uint(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

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

// File: contracts\libraries\Math.sol

pragma solidity =0.5.16;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

// File: contracts\libraries\UQ112x112.sol

pragma solidity =0.5.16;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

// File: contracts\interfaces\IERC20.sol

pragma solidity >=0.5.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

// File: contracts\interfaces\IPancakeFactory.sol

pragma solidity >=0.5.0;

interface IPancakeFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// File: contracts\interfaces\IPancakeCallee.sol

pragma solidity >=0.5.0;

interface IPancakeCallee {
    function pancakeCall(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

// File: contracts\PancakePair.sol

pragma solidity =0.5.16;







contract PancakePair is IPancakePair, PancakeERC20 {
    using SafeMath  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'Pancake: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'Pancake: TRANSFER_FAILED');
    }

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'Pancake: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'Pancake: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 8/25 of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IPancakeFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast)).mul(8);
                    uint denominator = rootK.mul(17).add(rootKLast.mul(8));
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
           _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'Pancake: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'Pancake: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'Pancake: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'Pancake: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'Pancake: INVALID_TO');
        if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
        if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
        if (data.length > 0) IPancakeCallee(to).pancakeCall(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'Pancake: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = (balance0.mul(10000).sub(amount0In.mul(25)));
        uint balance1Adjusted = (balance1.mul(10000).sub(amount1In.mul(25)));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(10000**2), 'Pancake: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b5060004690506040518080613bfa60529139605201905060405180910390206040518060400160405280600b81526020017f50616e63616b65204c5073000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a85806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611234565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661126d565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ca565b604051808215151515815260200191505060405180910390f35b6103c46112e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e611307565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061130d565b604051808215151515815260200191505060405180910390f35b6104b26114d8565b6040518082815260200191505060405180910390f35b6104d06114ff565b604051808260ff1660ff16815260200191505060405180910390f35b6104f4611504565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061150a565b005b610576611653565b6040518082815260200191505060405180910390f35b610594611659565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610662611b28565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b2e565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b46565b604051808381526020018281526020019250505060405180910390f35b610737612133565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061216c565b604051808215151515815260200191505060405180910390f35b610820612183565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612189565b005b610882612464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124b0565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f4565b6040518082815260200191505060405180910390f35b610a27612819565b005b6001600c5414610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613a086023913960400191505060405180910390fd5b600080610b1861126d565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f50616e63616b653a20494e53554646494349454e545f4c49515549444954590081525060200191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c7657508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f50616e63616b653a20494e56414c49445f544f0000000000000000000000000081525060200191505060405180910390fd5b60008b1115610cfd57610cfc828a8d612a99565b5b60008a1115610d1257610d11818a8c612a99565b5b6000888890501115610dfa578873ffffffffffffffffffffffffffffffffffffffff166384800812338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d6020811015610f5b57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f92576000610fa8565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610fcc576000610fe2565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ff35750600081115b611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806139c06022913960400191505060405180910390fd5b6000611084611061601985612ce690919063ffffffff16565b61107661271088612ce690919063ffffffff16565b612d7b90919063ffffffff16565b905060006110c261109f601985612ce690919063ffffffff16565b6110b461271088612ce690919063ffffffff16565b612d7b90919063ffffffff16565b905061110d6305f5e1006110ff896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b612ce690919063ffffffff16565b6111208284612ce690919063ffffffff16565b1015611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f50616e63616b653a204b0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506111a284848888612dfe565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600b81526020017f50616e63616b65204c507300000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112d733848461317c565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114c25761144182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114cd848484613267565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f50616e63616b653a20464f5242494444454e000000000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ec61126d565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561179257600080fd5b505afa1580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561187057600080fd5b505afa158015611884573d6000803e3d6000fd5b505050506040513d602081101561189a57600080fd5b8101908080519060200190929190505050905060006118d2856dffffffffffffffffffffffffffff1684612d7b90919063ffffffff16565b905060006118f9856dffffffffffffffffffffffffffff1684612d7b90919063ffffffff16565b9050600061190787876133fb565b9050600080549050600081141561195b576119476103e86119396119348688612ce690919063ffffffff16565b613602565b612d7b90919063ffffffff16565b985061195660006103e8613664565b6119be565b6119bb886dffffffffffffffffffffffffffff166119828387612ce690919063ffffffff16565b8161198957fe5b04886dffffffffffffffffffffffffffff166119ae8487612ce690919063ffffffff16565b816119b557fe5b0461377e565b98505b60008911611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613a2b6026913960400191505060405180910390fd5b611a218a8a613664565b611a2d86868a8a612dfe565b8115611aa557611a9e6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611bc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bd461126d565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ca657600080fd5b505afa158015611cba573d6000803e3d6000fd5b505050506040513d6020811015611cd057600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d6257600080fd5b505afa158015611d76573d6000803e3d6000fd5b505050506040513d6020811015611d8c57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611def88886133fb565b905060008054905080611e0b8685612ce690919063ffffffff16565b81611e1257fe5b049a5080611e298585612ce690919063ffffffff16565b81611e3057fe5b04995060008b118015611e43575060008a115b611e98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806139e26026913960400191505060405180910390fd5b611ea23084613797565b611ead878d8d612a99565b611eb8868d8c612a99565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f3557600080fd5b505afa158015611f49573d6000803e3d6000fd5b505050506040513d6020811015611f5f57600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fef57600080fd5b505afa158015612003573d6000803e3d6000fd5b505050506040513d602081101561201957600080fd5b8101908080519060200190929190505050935061203885858b8b612dfe565b81156120b0576120a96008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600781526020017f43616b652d4c500000000000000000000000000000000000000000000000000081525081565b6000612179338484613267565b6001905092915050565b6103e881565b6001600c5414612201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123578284612352600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561230957600080fd5b505afa15801561231d573d6000803e3d6000fd5b505050506040513d602081101561233357600080fd5b8101908080519060200190929190505050612d7b90919063ffffffff16565b612a99565b61245781846124526008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b8101908080519060200190929190505050612d7b90919063ffffffff16565b612a99565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612526576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f50616e63616b653a20455850495245440000000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126f8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561276c57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f50616e63616b653a20494e56414c49445f5349474e415455524500000000000081525060200191505060405180910390fd5b6127e989898961317c565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a8f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561293b57600080fd5b505afa15801561294f573d6000803e3d6000fd5b505050506040513d602081101561296557600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a1557600080fd5b505afa158015612a29573d6000803e3d6000fd5b505050506040513d6020811015612a3f57600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612dfe565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612bc65780518252602082019150602081019050602083039250612ba3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c28576040519150601f19603f3d011682016040523d82523d6000602084013e612c2d565b606091505b5091509150818015612c6d5750600081511480612c6c5750808060200190516020811015612c5a57600080fd5b81019080805190602001909291905050505b5b612cdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50616e63616b653a205452414e534645525f4641494c4544000000000000000081525060200191505060405180910390fd5b5050505050565b600080821480612d035750828283850292508281612d0057fe5b04145b612d75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e6e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ee0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f50616e63616b653a204f564552464c4f5700000000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ef057fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f3357506000846dffffffffffffffffffffffffffff1614155b8015612f5057506000836dffffffffffffffffffffffffffff1614155b15613032578063ffffffff16612f9585612f69866138b1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138dc90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff1661300384612fd7876138b1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138dc90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6132b981600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061334e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461393c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561346657600080fd5b505afa15801561347a573d6000803e3d6000fd5b505050506040513d602081101561349057600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135e857600081146135e3576000613528613523866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b613602565b9050600061353583613602565b9050808211156135e057600061357b600861356d61355c8587612d7b90919063ffffffff16565b600054612ce690919063ffffffff16565b612ce690919063ffffffff16565b905060006135b8613596600885612ce690919063ffffffff16565b6135aa601187612ce690919063ffffffff16565b61393c90919063ffffffff16565b905060008183816135c557fe5b04905060008111156135dc576135db8782613664565b5b5050505b50505b6135fa565b600081146135f9576000600b819055505b5b505092915050565b6000600382111561365157819050600060016002848161361e57fe5b040190505b8181101561364b5780915060028182858161363a57fe5b04018161364357fe5b049050613623565b5061365f565b6000821461365e57600190505b5b919050565b6136798160005461393c90919063ffffffff16565b6000819055506136d181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461393c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081831061378d578161378f565b825b905092915050565b6137e981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061384181600054612d7b90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168161393357fe5b04905092915050565b60008282840191508110156139b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e454450616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158204c647542259e471353892c1bc85f3bd97626f8162e3134e910684c65f3f4f2ca64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

11152:9676:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11152:9676:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18351:1884;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18351:1884:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18351:1884:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18351:1884:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18351:1884:0;;;;;;;;;;;;:::i;:::-;;4592:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4592:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12165:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6641:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6641:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11456:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4732:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6943:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6943:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5024:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4690:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4881:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13223:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13223:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11807:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11846;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15425:1238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15425:1238:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4763:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4763:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11885:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5139:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5139:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16775:1464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16775:1464:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4642:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4642:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6796:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6796:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11277:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20284:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20284:334:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11427:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11484:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7252:670;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7252:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4811:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4811:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20667:158;;;:::i;:::-;;18351:1884;12070:1;12058:8;;:13;12050:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:1;12102:8;:12;;;;18478:1;18465:10;:14;:32;;;;18496:1;18483:10;:14;18465:32;18457:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18549:17;18568;18590:13;:11;:13::i;:::-;18548:55;;;;;18650:9;18637:22;;:10;:22;:48;;;;;18676:9;18663:22;;:10;:22;18637:48;18629:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18734:13;18758;18848:15;18866:6;;;;;;;;;;;18848:24;;18883:15;18901:6;;;;;;;;;;;18883:24;;18932:7;18926:13;;:2;:13;;;;:30;;;;;18949:7;18943:13;;:2;:13;;;;18926:30;18918:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19008:1;18995:10;:14;18991:58;;;19011:38;19025:7;19034:2;19038:10;19011:13;:38::i;:::-;18991:58;19111:1;19098:10;:14;19094:58;;;19114:38;19128:7;19137:2;19141:10;19114:13;:38::i;:::-;19094:58;19215:1;19201:4;;:11;;:15;19197:93;;;19233:2;19218:30;;;19249:10;19261;19273;19285:4;;19218:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19218:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19218:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19218:72:0;;;;19197:93;19319:7;19312:25;;;19346:4;19312:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19312:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19312:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19312:40:0;;;;;;;;;;;;;;;;19301:51;;19381:7;19374:25;;;19408:4;19374:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19374:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19374:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19374:40:0;;;;;;;;;;;;;;;;19363:51;;12125:1;;19436:14;19476:10;19464:9;:22;;;19453:8;:33;:75;;19527:1;19453:75;;;19513:10;19501:9;:22;;;19489:8;:35;19453:75;19436:92;;19539:14;19579:10;19567:9;:22;;;19556:8;:33;:75;;19630:1;19556:75;;;19616:10;19604:9;:22;;;19592:8;:35;19556:75;19539:92;;19662:1;19650:9;:13;:30;;;;19679:1;19667:9;:13;19650:30;19642:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19805:21;19830:42;19854:17;19868:2;19854:9;:13;;:17;;;;:::i;:::-;19830:19;19843:5;19830:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19805:68;;19884:21;19909:42;19933:17;19947:2;19933:9;:13;;:17;;;;:::i;:::-;19909:19;19922:5;19909:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19884:68;;20013:44;20048:8;20013:30;20033:9;20013:30;;20018:9;20013:15;;:19;;:30;;;;:::i;:::-;:34;;:44;;;;:::i;:::-;19971:38;19992:16;19971;:20;;:38;;;;:::i;:::-;:86;;19963:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12125:1;;20096:49;20104:8;20114;20124:9;20135;20096:7;:49::i;:::-;20224:2;20161:66;;20166:10;20161:66;;;20178:9;20189;20200:10;20212;20161:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12125:1;;;;;;12148;12137:8;:12;;;;18351:1884;;;;;:::o;4592:43::-;;;;;;;;;;;;;;;;;;;:::o;12165:231::-;12209:17;12228;12247:26;12298:8;;;;;;;;;;;12286:20;;12329:8;;;;;;;;;;;12317:20;;12370:18;;;;;;;;;;;12348:40;;12165:231;;;:::o;6641:147::-;6705:4;6722:36;6731:10;6743:7;6752:5;6722:8;:36::i;:::-;6776:4;6769:11;;6641:147;;;;:::o;11456:21::-;;;;;;;;;;;;;:::o;4732:24::-;;;;:::o;6943:301::-;7021:4;7078:2;7042:9;:15;7052:4;7042:15;;;;;;;;;;;;;;;:27;7058:10;7042:27;;;;;;;;;;;;;;;;:39;7038:140;;7128:38;7160:5;7128:9;:15;7138:4;7128:15;;;;;;;;;;;;;;;:27;7144:10;7128:27;;;;;;;;;;;;;;;;:31;;:38;;;;:::i;:::-;7098:9;:15;7108:4;7098:15;;;;;;;;;;;;;;;:27;7114:10;7098:27;;;;;;;;;;;;;;;:68;;;;7038:140;7188:26;7198:4;7204:2;7208:5;7188:9;:26::i;:::-;7232:4;7225:11;;6943:301;;;;;:::o;5024:108::-;5066:66;5024:108;;;:::o;4690:35::-;4723:2;4690:35;:::o;4881:31::-;;;;:::o;13223:208::-;13319:7;;;;;;;;;;;13305:21;;:10;:21;;;13297:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13389:7;13380:6;;:16;;;;;;;;;;;;;;;;;;13416:7;13407:6;;:16;;;;;;;;;;;;;;;;;;13223:208;;:::o;11807:32::-;;;;:::o;11846:::-;;;;:::o;15425:1238::-;15474:14;12070:1;12058:8;;:13;12050:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:1;12102:8;:12;;;;15502:17;15521;15543:13;:11;:13::i;:::-;15501:55;;;;;15582:13;15605:6;;;;;;;;;;;15598:24;;;15631:4;15598:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15598:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15598:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15598:39:0;;;;;;;;;;;;;;;;15582:55;;15648:13;15671:6;;;;;;;;;;;15664:24;;;15697:4;15664:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15664:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15664:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15664:39:0;;;;;;;;;;;;;;;;15648:55;;15714:12;15729:23;15742:9;15729:23;;:8;:12;;:23;;;;:::i;:::-;15714:38;;15763:12;15778:23;15791:9;15778:23;;:8;:12;;:23;;;;:::i;:::-;15763:38;;15814:10;15827:30;15836:9;15847;15827:8;:30::i;:::-;15814:43;;15868:17;15888:11;;15868:31;;16008:1;15992:12;:17;15988:352;;;16038:54;11318:5;16038:31;16048:20;16060:7;16048;:11;;:20;;;;:::i;:::-;16038:9;:31::i;:::-;:35;;:54;;;;:::i;:::-;16026:66;;16106:36;16120:1;11318:5;16106;:36::i;:::-;15988:352;;;16242:86;16279:9;16251:37;;:25;16263:12;16251:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16318:9;16290:37;;:25;16302:12;16290:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16242:8;:86::i;:::-;16230:98;;15988:352;16370:1;16358:9;:13;16350:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16425:20;16431:2;16435:9;16425:5;:20::i;:::-;16458:49;16466:8;16476;16486:9;16497;16458:7;:49::i;:::-;16522:5;16518:47;;;16537:28;16556:8;;;;;;;;;;;16537:28;;16542:8;;;;;;;;;;;16537:14;;:18;;:28;;;;:::i;:::-;16529:5;:36;;;;16518:47;16626:10;16621:34;;;16638:7;16647;16621:34;;;;;;;;;;;;;;;;;;;;;;;;12125:1;;;;;;;;12148;12137:8;:12;;;;15425:1238;;;:::o;4763:41::-;;;;;;;;;;;;;;;;;:::o;11885:17::-;;;;:::o;5139:38::-;;;;;;;;;;;;;;;;;:::o;16775:1464::-;16824:12;16838;12070:1;12058:8;;:13;12050:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:1;12102:8;:12;;;;16864:17;16883;16905:13;:11;:13::i;:::-;16863:55;;;;;16944:15;16962:6;;;;;;;;;;;16944:24;;17025:15;17043:6;;;;;;;;;;;17025:24;;17106:13;17129:7;17122:25;;;17156:4;17122:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17122:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17122:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17122:40:0;;;;;;;;;;;;;;;;17106:56;;17173:13;17196:7;17189:25;;;17223:4;17189:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17189:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17189:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17189:40:0;;;;;;;;;;;;;;;;17173:56;;17240:14;17257:9;:24;17275:4;17257:24;;;;;;;;;;;;;;;;17240:41;;17294:10;17307:30;17316:9;17327;17307:8;:30::i;:::-;17294:43;;17348:17;17368:11;;17348:31;;17504:12;17478:23;17492:8;17478:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17468:48;;17611:12;17585:23;17599:8;17585:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17575:48;;17700:1;17690:7;:11;:26;;;;;17715:1;17705:7;:11;17690:26;17682:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17770:31;17784:4;17791:9;17770:5;:31::i;:::-;17812:35;17826:7;17835:2;17839:7;17812:13;:35::i;:::-;17858;17872:7;17881:2;17885:7;17858:13;:35::i;:::-;17922:7;17915:25;;;17949:4;17915:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17915:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17915:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17915:40:0;;;;;;;;;;;;;;;;17904:51;;17984:7;17977:25;;;18011:4;17977:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17977:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17977:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17977:40:0;;;;;;;;;;;;;;;;17966:51;;18030:49;18038:8;18048;18058:9;18069;18030:7;:49::i;:::-;18094:5;18090:47;;;18109:28;18128:8;;;;;;;;;;;18109:28;;18114:8;;;;;;;;;;;18109:14;;:18;;:28;;;;:::i;:::-;18101:5;:36;;;;18090:47;18228:2;18193:38;;18198:10;18193:38;;;18210:7;18219;18193:38;;;;;;;;;;;;;;;;;;;;;;;;12125:1;;;;;;;;;12148;12137:8;:12;;;;16775:1464;;;:::o;4642:41::-;;;;;;;;;;;;;;;;;;;:::o;6796:139::-;6856:4;6873:32;6883:10;6895:2;6899:5;6873:9;:32::i;:::-;6923:4;6916:11;;6796:139;;;;:::o;11277:46::-;11318:5;11277:46;:::o;20284:334::-;12070:1;12058:8;;:13;12050:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:1;12102:8;:12;;;;20335:15;20353:6;;;;;;;;;;;20335:24;;20385:15;20403:6;;;;;;;;;;;20385:24;;20435:82;20449:7;20458:2;20462:54;20507:8;;;;;;;;;;;20462:54;;20469:7;20462:25;;;20496:4;20462:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20462:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20462:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20462:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20435:13;:82::i;:::-;20528;20542:7;20551:2;20555:54;20600:8;;;;;;;;;;;20555:54;;20562:7;20555:25;;;20589:4;20555:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20555:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20555:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20555:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20528:13;:82::i;:::-;12125:1;;12148;12137:8;:12;;;;20284:334;:::o;11427:22::-;;;;;;;;;;;;;:::o;11484:21::-;;;;;;;;;;;;;:::o;7252:670::-;7398:15;7386:8;:27;;7378:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7445:14;7550:16;;5066:66;7606:15;;7623:5;7630:7;7639:5;7646:6;:13;7653:5;7646:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;7663:8;7595:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7595:77:0;;;7585:88;;;;;;7486:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7486:202:0;;;7462:237;;;;;;7445:254;;7710:24;7737:26;7747:6;7755:1;7758;7761;7737:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7737:26:0;;;;;;;;7710:53;;7810:1;7782:30;;:16;:30;;;;:59;;;;;7836:5;7816:25;;:16;:25;;;7782:59;7774:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7883:31;7892:5;7899:7;7908:5;7883:8;:31::i;:::-;7252:670;;;;;;;;;:::o;4811:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20667:158::-;12070:1;12058:8;;:13;12050:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:1;12102:8;:12;;;;20708:109;20723:6;;;;;;;;;;;20716:24;;;20749:4;20716:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20716:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20716:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20716:39:0;;;;;;;;;;;;;;;;20764:6;;;;;;;;;;;20757:24;;;20790:4;20757:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20757:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20757:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20757:39:0;;;;;;;;;;;;;;;;20798:8;;;;;;;;;;;20808;;;;;;;;;;;20708:7;:109::i;:::-;12148:1;12137:8;:12;;;;20667:158::o;12404:285::-;12486:12;12500:17;12521:5;:10;;11382:34;;;;;;;;;;;;;;;;;11372:45;;;;;;12565:2;12569:5;12532:43;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12532:43:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;12532:43:0;12521:55;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12521:55:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;12485:91:0;;;;12595:7;:57;;;;;12622:1;12607:4;:11;:16;:44;;;;12638:4;12627:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12627:24:0;;;;;;;;;;;;;;;;12607:44;12595:57;12587:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12404:285;;;;;:::o;4296:142::-;4348:6;4380:1;4375;:6;:30;;;;4404:1;4399;4394;4390;:5;4386:9;;;4385:15;;;;;;:20;4375:30;4367:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4296:142;;;;:::o;4159:129::-;4211:6;4253:1;4247;4243;:5;4239:9;;;4238:16;;4230:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4159:129;;;;:::o;13516:858::-;13648:2;13628:23;;:8;:23;;:50;;;;;13675:2;13655:23;;:8;:23;;13628:50;13620:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13711:21;13760:5;13742:15;:23;;;;;;13711:55;;13777:18;13815;;;;;;;;;;;13798:14;:35;13777:56;;13885:1;13871:11;:15;;;:33;;;;;13903:1;13890:9;:14;;;;13871:33;:51;;;;;13921:1;13908:9;:14;;;;13871:51;13867:336;;;14077:11;14024:64;;14029:44;14063:9;14029:27;14046:9;14029:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;14024:50;;:64;14000:20;;:88;;;;;;;;;;;14180:11;14127:64;;14132:44;14166:9;14132:27;14149:9;14132:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;14127:50;;:64;14103:20;;:88;;;;;;;;;;;13867:336;14232:8;14213;;:28;;;;;;;;;;;;;;;;;;14271:8;14252;;:28;;;;;;;;;;;;;;;;;;14312:14;14291:18;;:35;;;;;;;;;;;;;;;;;;14342:24;14347:8;;;;;;;;;;;14357;;;;;;;;;;;14342:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13516:858;;;;;;:::o;6236:169::-;6345:5;6317:9;:16;6327:5;6317:16;;;;;;;;;;;;;;;:25;6334:7;6317:25;;;;;;;;;;;;;;;:33;;;;6382:7;6366:31;;6375:5;6366:31;;;6391:5;6366:31;;;;;;;;;;;;;;;;;;6236:169;;;:::o;6413:220::-;6507:26;6527:5;6507:9;:15;6517:4;6507:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6489:9;:15;6499:4;6489:15;;;;;;;;;;;;;;;:44;;;;6560:24;6578:5;6560:9;:13;6570:2;6560:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6544:9;:13;6554:2;6544:13;;;;;;;;;;;;;;;:40;;;;6615:2;6600:25;;6609:4;6600:25;;;6619:5;6600:25;;;;;;;;;;;;;;;;;;6413:220;;;:::o;14463:850::-;14536:10;14559:13;14591:7;;;;;;;;;;;14575:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14575:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14575:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14575:32:0;;;;;;;;;;;;;;;;14559:48;;14643:1;14626:19;;:5;:19;;;;14618:27;;14656:11;14670:5;;14656:19;;14705:5;14701:605;;;14741:1;14731:6;:11;14727:509;;14763:10;14776:41;14786:30;14806:9;14786:30;;14791:9;14786:15;;:19;;:30;;;;:::i;:::-;14776:9;:41::i;:::-;14763:54;;14836:14;14853:17;14863:6;14853:9;:17::i;:::-;14836:34;;14901:9;14893:5;:17;14889:332;;;14935:14;14952:44;14994:1;14952:37;14968:20;14978:9;14968:5;:9;;:20;;;;:::i;:::-;14952:11;;:15;;:37;;;;:::i;:::-;:41;;:44;;;;:::i;:::-;14935:61;;15019:16;15038:35;15056:16;15070:1;15056:9;:13;;:16;;;;:::i;:::-;15038:13;15048:2;15038:5;:9;;:13;;;;:::i;:::-;:17;;:35;;;;:::i;:::-;15019:54;;15096:14;15125:11;15113:9;:23;;;;;;15096:40;;15175:1;15163:9;:13;15159:42;;;15178:23;15184:5;15191:9;15178:5;:23::i;:::-;15159:42;14889:332;;;;14727:509;;;14701:605;;;15267:1;15257:6;:11;15253:53;;15293:1;15285:5;:9;;;;15253:53;14701:605;14463:850;;;;;;:::o;8287:303::-;8332:6;8359:1;8355;:5;8351:232;;;8381:1;8377:5;;8397:6;8414:1;8410;8406;:5;;;;;;:9;8397:18;;8430:92;8441:1;8437;:5;8430:92;;;8467:1;8463:5;;8505:1;8500;8496;8492;:5;;;;;;:9;8491:15;;;;;;8487:19;;8430:92;;;8351:232;;;;8548:1;8543;:6;8539:44;;8570:1;8566:5;;8539:44;8351:232;8287:303;;;:::o;5810:201::-;5883:22;5899:5;5883:11;;:15;;:22;;;;:::i;:::-;5869:11;:36;;;;5932:24;5950:5;5932:9;:13;5942:2;5932:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5916:9;:13;5926:2;5916:13;;;;;;;;;;;;;;;:40;;;;5993:2;5972:31;;5989:1;5972:31;;;5997:5;5972:31;;;;;;;;;;;;;;;;;;5810:201;;:::o;8073:96::-;8125:6;8152:1;8148;:5;:13;;8160:1;8148:13;;;8156:1;8148:13;8144:17;;8073:96;;;;:::o;6019:209::-;6098:26;6118:5;6098:9;:15;6108:4;6098:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6080:9;:15;6090:4;6080:15;;;;;;;;;;;;;;;:44;;;;6149:22;6165:5;6149:11;;:15;;:22;;;;:::i;:::-;6135:11;:36;;;;6210:1;6187:33;;6196:4;6187:33;;;6214:5;6187:33;;;;;;;;;;;;;;;;;;6019:209;;:::o;8937:120::-;8987:9;8882:6;9021:1;9013:10;;:17;9009:21;;8937:120;;;:::o;9128:108::-;9188:9;9226:1;9218:10;;9214:14;;:1;:14;;;;;;;;9210:18;;9128:108;;;;:::o;4023:128::-;4075:6;4117:1;4111;4107;:5;4103:9;;;4102:16;;4094:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:128;;;;:::o

Swarm Source

bzzr://4c647542259e471353892c1bc85f3bd97626f8162e3134e910684c65f3f4f2ca
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.