ETH Price: $2,576.52 (+0.99%)

Token

Distributed Adult Art & Culture (DAAC)
 

Overview

Max Total Supply

1,000,000,000 DAAC

Holders

854

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,000 DAAC

Value
$0.00
0x51c5cae7ea80350d7bbe298bc5db2df18e6a7c0e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DaacToken

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-06-14
*/

/**
 * Source Code first verified at https://etherscan.io on Monday, November 26, 2018
 (UTC) */

pragma solidity ^0.5.1;

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

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

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

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

contract ERCBasic {
        event Transfer(address indexed from, address indexed to, uint256 value);

        function totalSupply () public view returns (uint256);
        function balanceOf (address who) public view returns (uint256);
        function transfer (address to, uint256 value) public returns (bool);
}

contract ERC is ERCBasic {
        event Approval(address indexed owner, address indexed spender, uint256 value);

        function transferFrom (address from, address to, uint256 value) public returns (bool);
        function allowance (address owner, address spender) public view returns (uint256);
        function approve (address spender, uint256 value) public returns (bool);
}

contract Ownable {
        
        address payable internal owner;
        address internal foundationOwner;

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

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

        modifier hasMintability () {
                require(msg.sender == owner || msg.sender == foundationOwner);
                _;
        }

      
}

contract Pausable is Ownable {
        event ContractPause();
        event ContractResume();
        event ContractPauseSchedule(uint256 from, uint256 to);

        uint256 internal pauseFrom;
        uint256 internal pauseTo;

        modifier whenRunning () {
                require(now < pauseFrom || now > pauseTo);
                _;
        }

        modifier whenPaused () {
                require(now >= pauseFrom && now <= pauseTo);
                _;
        }

        function pause () public onlyOwner {
                pauseFrom = now - 1;
                pauseTo = now + 30000 days;
                emit ContractPause();
        }

        function pause (uint256 from, uint256 to) public onlyOwner {
                require(to > from);
                pauseFrom = from;
                pauseTo = to;
                emit ContractPauseSchedule(from, to);
        }

        function resume () public onlyOwner {
                pauseFrom = now - 2;
                pauseTo = now - 1;
                emit ContractResume();
        }
}

contract TokenForge is Ownable {
        event ForgeStart();
        event ForgeStop();

        bool public forge_running = true;

        modifier canForge () {
                require(forge_running);
                _;
        }

        modifier cannotForge () {
                require(!forge_running);
                _;
        }

        function startForge () public onlyOwner cannotForge returns (bool) {
                forge_running = true;
                emit ForgeStart();
                return true;
        }

        function stopForge () public onlyOwner canForge returns (bool) {
                forge_running = false;
                emit ForgeStop();
                return true;
        }
}

contract CappedToken is Ownable {
        using SafeMath for uint256;

        uint256 public token_cap;
        uint256 public token_created;
        uint256 public token_foundation_cap;
        uint256 public token_foundation_created;


        constructor (uint256 _cap, uint256 _foundationCap) public {
                token_cap = _cap;
                token_foundation_cap = _foundationCap;
        }

        function changeCap (uint256 _cap) public onlyOwner returns (bool) {
                if (_cap < token_created && _cap > 0) return false;
                token_cap = _cap;
                return true;
        }

        function canMint (uint256 amount) public view returns (bool) {
                return (token_cap == 0) || (token_created.add(amount) <= token_cap);
        }
        
        function canMintFoundation(uint256 amount) internal view returns(bool) {
                return(token_foundation_created.add(amount) <= token_foundation_cap);
        }
}

contract BasicToken is ERCBasic, Pausable {
        using SafeMath for uint256;

        mapping(address => uint256) public wallets;

        modifier canTransfer (address _from, address _to, uint256 amount) {
                require((_from != address(0)) && (_to != address(0)));
                require(_from != _to);
                require(amount > 0);
                _;
        }

        function balanceOf (address user) public view returns (uint256) {
                return wallets[user];
        }
}

contract DelegatableToken is ERC, BasicToken {
        using SafeMath for uint256;

        mapping(address => mapping(address => uint256)) public warrants;

        function allowance (address owner, address delegator) public view returns (uint256) {
                return warrants[owner][delegator];
        }

        function approve (address delegator, uint256 value) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }

        function increaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                uint256 value = warrants[msg.sender][delegator].add(delta);
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }

        function decreaseApproval (address delegator, uint256 delta) public whenRunning returns (bool) {
                if (delegator == msg.sender) return true;
                uint256 value = warrants[msg.sender][delegator];
                if (value < delta) {
                        value = 0;
                }
                else {
                        value = value.sub(delta);
                }
                warrants[msg.sender][delegator] = value;
                emit Approval(msg.sender, delegator, value);
                return true;
        }
}

contract LockableProtocol is BasicToken {
        function invest (address investor, uint256 amount) public returns (bool);
        function getInvestedToken (address investor) public view returns (uint256);
        function getLockedToken (address investor) public view returns (uint256);
        function availableWallet (address user) public view returns (uint256) {
                return wallets[user].sub(getLockedToken(user));
        }
}

contract MintAndBurnToken is TokenForge, CappedToken, LockableProtocol {
        using SafeMath for uint256;
        
        event Mint(address indexed user, uint256 amount);
        event Burn(address indexed user, uint256 amount);

        constructor (uint256 _initial, uint256 _cap, uint256 _qnetCap) public CappedToken(_cap, _qnetCap) {
                token_created = _initial;
                wallets[msg.sender] = _initial;

        emit Mint(msg.sender, _initial);
        emit Transfer(address(0), msg.sender, _initial);
        }

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

        function totalQnetSupply() public view returns(uint256) {
                return token_foundation_created;
        }

        function mint (address target, uint256 amount) public hasMintability whenRunning canForge returns (bool) {
                require(target != owner && target != foundationOwner);
                require(canMint(amount));

        if (msg.sender == foundationOwner) {
                require(canMintFoundation(amount));
                token_foundation_created = token_foundation_created.add(amount);
        }
        
        token_created = token_created.add(amount);
        wallets[target] = wallets[target].add(amount);

        emit Mint(target, amount);
        emit Transfer(address(0), target, amount);
        return true;
        }

        function burn (uint256 amount) public whenRunning canForge returns (bool) {
                uint256 balance = availableWallet(msg.sender);
                require(amount <= balance);

        token_created = token_created.sub(amount);
        wallets[msg.sender] -= amount;

        emit Burn(msg.sender, amount);
        emit Transfer(msg.sender, address(0), amount);

        return true;
        }
}

contract LockableToken is MintAndBurnToken, DelegatableToken {
        using SafeMath for uint256;

        struct LockBin {
                uint256 start;
                uint256 finish;
                uint256 duration;
                uint256 amount;
        }

        event InvestStart();
        event InvestStop();
        event NewInvest(uint256 release_start, uint256 release_duration);

        uint256 public releaseStart;
        uint256 public releaseDuration;
        bool public forceStopInvest;
        mapping(address => mapping(uint => LockBin)) public lockbins;

        modifier canInvest () {
                require(!forceStopInvest);
                _;
        }

        constructor (uint256 _initial, uint256 _cap, uint256 _qnetCap) public MintAndBurnToken(_initial, _cap, _qnetCap) {
                forceStopInvest = true;
        }

        function pauseInvest () public onlyOwner whenRunning returns (bool) {
                require(!forceStopInvest);
                forceStopInvest = true;
                emit InvestStop();
                return true;
        }

        function resumeInvest () public onlyOwner whenRunning returns (bool) {
                require(forceStopInvest);
                forceStopInvest = false;
                emit InvestStart();
                return true;
        }

        function setInvest (uint256 release_start, uint256 release_duration) public onlyOwner whenRunning returns (bool) {
                releaseStart = release_start;
                releaseDuration = release_duration;
                forceStopInvest = false;

        emit NewInvest(release_start, release_duration);
        return true;
        }

        function invest (address investor, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) {
                require(investor != address(0));
                require(investor != owner);
                require(investor != foundationOwner);
                require(amount > 0);
                require(canMint(amount));

        mapping(uint => LockBin) storage locks = lockbins[investor];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;

        token_created = token_created.add(amount);
        wallets[investor] = wallets[investor].add(amount);
        emit Mint(investor, amount);
        emit Transfer(address(0), investor, amount);

        return true;
        }

        function batchInvest (address[] memory investors, uint256 amount) public onlyOwner whenRunning canInvest returns (bool) {
                require(amount > 0);

        uint investorsLength = investors.length;
        uint investorsCount = 0;
        uint i;
        address r;
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner || r == foundationOwner) continue;
                investorsCount ++;
        }
        require(investorsCount > 0);

        uint256 totalAmount = amount.mul(uint256(investorsCount));
        require(canMint(totalAmount));

        token_created = token_created.add(totalAmount);

        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner || r == foundationOwner) continue;

        mapping(uint => LockBin) storage locks = lockbins[r];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;

        wallets[r] = wallets[r].add(amount);
        emit Mint(r, amount);
        emit Transfer(address(0), r, amount);
        }

        return true;
        }

        function batchInvests (address[] memory investors, uint256[] memory amounts) public onlyOwner whenRunning canInvest returns (bool) {
                uint investorsLength = investors.length;
                require(investorsLength == amounts.length);

        uint investorsCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner) continue;
                investorsCount ++;
                totalAmount += amounts[i];
        }
        require(totalAmount > 0);
        require(canMint(totalAmount));

        uint256 amount;
        token_created = token_created.add(totalAmount);
        for (i = 0; i < investorsLength; i ++) {
                r = investors[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                wallets[r] = wallets[r].add(amount);
                emit Mint(r, amount);
                emit Transfer(address(0), r, amount);

        mapping(uint => LockBin) storage locks = lockbins[r];
        LockBin storage info = locks[0];
        uint index = info.amount + 1;
        locks[index] = LockBin({
                start: releaseStart,
                finish: releaseStart + releaseDuration,
                duration: releaseDuration / (1 days),
                amount: amount
        });
        info.amount = index;
        }

        return true;
        }

        function getInvestedToken (address investor) public view returns (uint256) {
                require(investor != address(0) && investor != owner && investor != foundationOwner);

        mapping(uint => LockBin) storage locks = lockbins[investor];
        uint256 balance = 0;
        uint l = locks[0].amount;
        for (uint i = 1; i <= l; i ++) {
                LockBin memory bin = locks[i];
                balance = balance.add(bin.amount);
        }
        return balance;
        }

        function getLockedToken (address investor) public view returns (uint256) {
                require(investor != address(0) && investor != owner && investor != foundationOwner);

        mapping(uint => LockBin) storage locks = lockbins[investor];
        uint256 balance = 0;
        uint256 d = 1;
        uint l = locks[0].amount;
        for (uint i = 1; i <= l; i ++) {
                LockBin memory bin = locks[i];
                if (now <= bin.start) {
                        balance = balance.add(bin.amount);
                }
                else if (now < bin.finish) {
                        d = (now - bin.start) / (1 days);
                        balance = balance.add(bin.amount - bin.amount * d / bin.duration);
                }
        }
        return balance;
        }

        function canPay (address user, uint256 amount) internal view returns (bool) {
                uint256 balance = availableWallet(user);
                return amount <= balance;
        }

        function transfer (address target, uint256 value) public whenRunning canTransfer(msg.sender, target, value) returns (bool) {
                require(target != owner);
                require(canPay(msg.sender, value));

        wallets[msg.sender] = wallets[msg.sender].sub(value);
        wallets[target] = wallets[target].add(value);
        emit Transfer(msg.sender, target, value);
        return true;
        }


        function batchTransfer (address[] memory receivers, uint256 amount) public whenRunning returns (bool) {
                require(amount > 0);

        uint receiveLength = receivers.length;
        uint receiverCount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
        }
        require(receiverCount > 0);

        uint256 totalAmount = amount.mul(uint256(receiverCount));
        require(canPay(msg.sender, totalAmount));

        wallets[msg.sender] -= totalAmount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(msg.sender, r, amount);
        }
        return true;
        }

        function batchTransfers (address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) {
                uint receiveLength = receivers.length;
                require(receiveLength == amounts.length);

        uint receiverCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
                totalAmount += amounts[i];
        }
        require(totalAmount > 0);
        require(canPay(msg.sender, totalAmount));

        wallets[msg.sender] -= totalAmount;
        uint256 amount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                if (amount == 0) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(msg.sender, r, amount);
        }
        return true;
        }

        function transferFrom (address from, address to, uint256 value) public whenRunning canTransfer(from, to, value) returns (bool) {
                require(from != owner);
                require(to != owner);
                require(canPay(from, value));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(value <= warrant);
                warrants[from][msg.sender] = warrant.sub(value);
        }

        wallets[from] = wallets[from].sub(value);
        wallets[to] = wallets[to].add(value);
        emit Transfer(from, to, value);
        return true;
        }

        function batchTransferFrom (address from, address[] memory  receivers, uint256 amount) public whenRunning returns (bool) {
                require(from != address(0) && from != owner);
                require(amount > 0);

        uint receiveLength = receivers.length;
        uint receiverCount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
        }
        require(receiverCount > 0);

        uint256 totalAmount = amount.mul(uint256(receiverCount));
        require(canPay(from, totalAmount));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(totalAmount <= warrant);
                warrants[from][msg.sender] = warrant.sub(totalAmount);
        }

        wallets[from] -= totalAmount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(from, r, amount);
        }
        return true;
        }

        function batchTransferFroms (address from, address[] memory receivers, uint256[] memory amounts) public whenRunning returns (bool) {
                require(from != address(0) && from != owner);

        uint receiveLength = receivers.length;
        require(receiveLength == amounts.length);

        uint receiverCount = 0;
        uint256 totalAmount = 0;
        uint i;
        address r;
        for (i = 0; i < receiveLength; i ++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                receiverCount ++;
                totalAmount += amounts[i];
        }
        require(totalAmount > 0);
        require(canPay(from, totalAmount));

        uint256 warrant;
        if (msg.sender != from) {
                warrant = warrants[from][msg.sender];
                require(totalAmount <= warrant);
                warrants[from][msg.sender] = warrant.sub(totalAmount);
        }

        wallets[from] -= totalAmount;
        uint256 amount;
        for (i = 0; i < receiveLength; i++) {
                r = receivers[i];
                if (r == address(0) || r == owner) continue;
                amount = amounts[i];
                if (amount == 0) continue;
                wallets[r] = wallets[r].add(amount);
                emit Transfer(from, r, amount);
        }
        return true;
        }
}

contract DaacToken is LockableToken {
        string  public constant name     = "Distributed Adult Art & Culture";
        string  public constant symbol   = "DAAC";
        uint8   public constant decimals = 18;

        uint256 private constant TOKEN_CAP     = 1000000000 * 10 ** uint256(decimals);
        uint256 private constant TOKEN_FOUNDATION_CAP = 1000000000   * 10 ** uint256(decimals);
        uint256 private constant TOKEN_INITIAL = 0   * 10 ** uint256(decimals);

        constructor () public LockableToken(TOKEN_INITIAL, TOKEN_CAP, TOKEN_FOUNDATION_CAP) {
        }

        
 	    function suicideQent () public onlyOwner{
             selfdestruct(owner);
        }
        
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"delegator","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"}],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receivers","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"batchTransfers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"release_start","type":"uint256"},{"name":"release_duration","type":"uint256"}],"name":"setInvest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startForge","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"forge_running","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeInvest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockbins","outputs":[{"name":"start","type":"uint256"},{"name":"finish","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"getLockedToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"receivers","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"batchTransferFroms","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"canMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"delegator","type":"address"},{"name":"delta","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investors","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"batchInvests","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"receivers","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"batchTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cap","type":"uint256"}],"name":"changeCap","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receivers","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"batchTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalQnetSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"wallets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suicideQent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"warrants","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"forceStopInvest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"getInvestedToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseInvest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopForge","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"amount","type":"uint256"}],"name":"invest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investors","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"batchInvest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_foundation_created","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"availableWallet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"delegator","type":"address"},{"name":"delta","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"delegator","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_created","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseDuration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"InvestStart","type":"event"},{"anonymous":false,"inputs":[],"name":"InvestStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"release_start","type":"uint256"},{"indexed":false,"name":"release_duration","type":"uint256"}],"name":"NewInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractPause","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractResume","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"ContractPauseSchedule","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStart","type":"event"},{"anonymous":false,"inputs":[],"name":"ForgeStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

608060405260018060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b50601260ff16600a0a600002601260ff16600a0a633b9aca0002601260ff16600a0a633b9aca00028282828181336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816002819055508060048190555050508260038190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885846040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050506001600c60006101000a81548160ff02191690831515021790555050505061575880620002396000396000f3fe60806040526004361061022a576000357c010000000000000000000000000000000000000000000000000000000090048063046f7da21461022f57806306fdde0314610246578063095ea7b3146102d657806318160ddd1461034957806323b872dd146103745780632d21551814610407578063313ce5671461044c5780633badca251461047d57806340c10f19146105ee57806342966c681461066157806342bb66c4146106b457806348cc7b6e1461071157806348eac90214610740578063491eeb3a1461076f5780634fcc1fc01461079e578063560ef1bf1461082257806359dd7ad4146108875780635dd871a314610a185780636618846314610a6b5780636ad9531714610ade57806370a0823114610c4f578063766e33f414610cb457806376f660f614610cdf578063800edb9d14610de657806383f12fec14610e395780638456cb5914610f20578063890b8b9d14610f3757806389b08f1114610f625780638ce31b6314610fc757806395d89b4114610fde5780639aa989791461106e5780639b890104146110f35780639cf4836514611122578063a4c673c514611187578063a9059cbb146111b6578063b703aa3a14611229578063b9b8c24614611258578063bd632e10146112cb578063c04e7e17146113b2578063d26e1414146113dd578063d28cb7b514611408578063d73dd6231461146d578063dd62ed3e146114e0578063de8ae5c014611565578063efc5d18314611590578063f9b41891146115bb575b600080fd5b34801561023b57600080fd5b506102446115e6565b005b34801561025257600080fd5b5061025b611683565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029b578082015181840152602081019050610280565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e257600080fd5b5061032f600480360360408110156102f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116bc565b604051808215151515815260200191505060405180910390f35b34801561035557600080fd5b5061035e611808565b6040518082815260200191505060405180910390f35b34801561038057600080fd5b506103ed6004803603606081101561039757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611812565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b5061044a6004803603604081101561042a57600080fd5b810190808035906020019092919080359060200190929190505050611cb6565b005b34801561045857600080fd5b50610461611d70565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048957600080fd5b506105d4600480360360408110156104a057600080fd5b81019080803590602001906401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460208302840111640100000000831117156104f157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561055157600080fd5b82018360208201111561056357600080fd5b8035906020019184602083028401116401000000008311171561058557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611d75565b604051808215151515815260200191505060405180910390f35b3480156105fa57600080fd5b506106476004803603604081101561061157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612109565b604051808215151515815260200191505060405180910390f35b34801561066d57600080fd5b5061069a6004803603602081101561068457600080fd5b81019080803590602001909291905050506124b3565b604051808215151515815260200191505060405180910390f35b3480156106c057600080fd5b506106f7600480360360408110156106d757600080fd5b81019080803590602001909291908035906020019092919050505061262e565b604051808215151515815260200191505060405180910390f35b34801561071d57600080fd5b50610726612719565b604051808215151515815260200191505060405180910390f35b34801561074c57600080fd5b506107556127df565b604051808215151515815260200191505060405180910390f35b34801561077b57600080fd5b506107846127f2565b604051808215151515815260200191505060405180910390f35b3480156107aa57600080fd5b506107f7600480360360408110156107c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128d4565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561082e57600080fd5b506108716004803603602081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612911565b6040518082815260200191505060405180910390f35b34801561089357600080fd5b506109fe600480360360608110156108aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156108e757600080fd5b8201836020820111156108f957600080fd5b8035906020019184602083028401116401000000008311171561091b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561097b57600080fd5b82018360208201111561098d57600080fd5b803590602001918460208302840111640100000000831117156109af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b64565b604051808215151515815260200191505060405180910390f35b348015610a2457600080fd5b50610a5160048036036020811015610a3b57600080fd5b81019080803590602001909291905050506130e8565b604051808215151515815260200191505060405180910390f35b348015610a7757600080fd5b50610ac460048036036040811015610a8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613117565b604051808215151515815260200191505060405180910390f35b348015610aea57600080fd5b50610c3560048036036040811015610b0157600080fd5b8101908080359060200190640100000000811115610b1e57600080fd5b820183602082011115610b3057600080fd5b80359060200191846020830284011164010000000083111715610b5257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610bb257600080fd5b820183602082011115610bc457600080fd5b80359060200191846020830284011164010000000083111715610be657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061330c565b604051808215151515815260200191505060405180910390f35b348015610c5b57600080fd5b50610c9e60048036036020811015610c7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061380e565b6040518082815260200191505060405180910390f35b348015610cc057600080fd5b50610cc9613857565b6040518082815260200191505060405180910390f35b348015610ceb57600080fd5b50610dcc60048036036060811015610d0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610d3f57600080fd5b820183602082011115610d5157600080fd5b80359060200191846020830284011164010000000083111715610d7357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061385d565b604051808215151515815260200191505060405180910390f35b348015610df257600080fd5b50610e1f60048036036020811015610e0957600080fd5b8101908080359060200190929190505050613dad565b604051808215151515815260200191505060405180910390f35b348015610e4557600080fd5b50610f0660048036036040811015610e5c57600080fd5b8101908080359060200190640100000000811115610e7957600080fd5b820183602082011115610e8b57600080fd5b80359060200191846020830284011164010000000083111715610ead57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613e3a565b604051808215151515815260200191505060405180910390f35b348015610f2c57600080fd5b50610f3561419a565b005b348015610f4357600080fd5b50610f4c61423a565b6040518082815260200191505060405180910390f35b348015610f6e57600080fd5b50610fb160048036036020811015610f8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614244565b6040518082815260200191505060405180910390f35b348015610fd357600080fd5b50610fdc61425c565b005b348015610fea57600080fd5b50610ff36142f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611033578082015181840152602081019050611018565b50505050905090810190601f1680156110605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561107a57600080fd5b506110dd6004803603604081101561109157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061432a565b6040518082815260200191505060405180910390f35b3480156110ff57600080fd5b5061110861434f565b604051808215151515815260200191505060405180910390f35b34801561112e57600080fd5b506111716004803603602081101561114557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614362565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b5061119c614547565b604051808215151515815260200191505060405180910390f35b3480156111c257600080fd5b5061120f600480360360408110156111d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061462a565b604051808215151515815260200191505060405180910390f35b34801561123557600080fd5b5061123e614917565b604051808215151515815260200191505060405180910390f35b34801561126457600080fd5b506112b16004803603604081101561127b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506149dd565b604051808215151515815260200191505060405180910390f35b3480156112d757600080fd5b50611398600480360360408110156112ee57600080fd5b810190808035906020019064010000000081111561130b57600080fd5b82018360208201111561131d57600080fd5b8035906020019184602083028401116401000000008311171561133f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614de0565b604051808215151515815260200191505060405180910390f35b3480156113be57600080fd5b506113c761536b565b6040518082815260200191505060405180910390f35b3480156113e957600080fd5b506113f2615371565b6040518082815260200191505060405180910390f35b34801561141457600080fd5b506114576004803603602081101561142b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615377565b6040518082815260200191505060405180910390f35b34801561147957600080fd5b506114c66004803603604081101561149057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506153da565b604051808215151515815260200191505060405180910390f35b3480156114ec57600080fd5b5061154f6004803603604081101561150357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506155ba565b6040518082815260200191505060405180910390f35b34801561157157600080fd5b5061157a615641565b6040518082815260200191505060405180910390f35b34801561159c57600080fd5b506115a5615647565b6040518082815260200191505060405180910390f35b3480156115c757600080fd5b506115d061564d565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164157600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040805190810160405280601f81526020017f4469737472696275746564204164756c742041727420262043756c747572650081525081565b60006006544210806116cf575060075442115b15156116da57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117175760019050611802565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b6000600654421080611825575060075442115b151561183057600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156118a857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118e357600080fd5b6000811115156118f257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561194e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156119aa57600080fd5b6119b48786615653565b15156119bf57600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1857600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808611151515611a8457600080fd5b611a97868261566e90919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611b6a86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bff86600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d1157600080fd5b8181111515611d1f57600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611d88575060075442115b1515611d9357600080fd5b600083519050825181141515611da857600080fd5b60008090506000809050600080600091505b84821015611e9f578782815181101515611dd057fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611e6357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611e6d57611e92565b83806001019450508682815181101515611e8357fe5b90602001906020020151830192505b8180600101925050611dba565b600083111515611eae57600080fd5b611eb83384615653565b1515611ec357600080fd5b82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060008092505b858310156120f9578883815181101515611f2c57fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611fbf57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611fc9576120ec565b8783815181101515611fd757fe5b9060200190602002015190506000811415611ff1576120ec565b61204381600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611f16565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121b35750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156121be57600080fd5b6006544210806121cf575060075442115b15156121da57600080fd5b600160149054906101000a900460ff1615156121f557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122a05750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15156122ab57600080fd5b6122b4826130e8565b15156122bf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156123455761231e826156a5565b151561232957600080fd5b61233e8260055461568790919063ffffffff16565b6005819055505b61235a8260035461568790919063ffffffff16565b6003819055506123b282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806124c6575060075442115b15156124d157600080fd5b600160149054906101000a900460ff1615156124ec57600080fd5b60006124f733615377565b905080831115151561250857600080fd5b61251d8360035461566e90919063ffffffff16565b60038190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268b57600080fd5b60065442108061269c575060075442115b15156126a757600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277657600080fd5b600160149054906101000a900460ff1615151561279257600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284f57600080fd5b600654421080612860575060075442115b151561286b57600080fd5b600c60009054906101000a900460ff16151561288657600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129f65750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612a0157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b8181111515612b5757612a81615703565b856000838152602001908152602001600020608060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142111515612af457612aed81606001518661568790919063ffffffff16565b9450612b49565b8060200151421015612b48576201518081600001514203811515612b1457fe5b049350612b45816040015185836060015102811515612b2f57fe5b048260600151038661568790919063ffffffff16565b94505b5b508080600101915050612a70565b5082945050505050919050565b6000600654421080612b77575060075442115b1515612b8257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c0c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1515612c1757600080fd5b600083519050825181141515612c2c57600080fd5b60008090506000809050600080600091505b84821015612d23578782815181101515612c5457fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ce757506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612cf157612d16565b83806001019450508682815181101515612d0757fe5b90602001906020020151830192505b8180600101925050612c3e565b600083111515612d3257600080fd5b612d3c8984615653565b1515612d4757600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ea057600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808411151515612e0c57600080fd5b612e1f848261566e90919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b83600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060008093505b868410156130d6578984815181101515612f0957fe5b906020019060200201519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f9c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612fa6576130c9565b8884815181101515612fb457fe5b9060200190602002015190506000811415612fce576130c9565b61302081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612ef3565b60019750505050505050509392505050565b6000806002541480613110575060025461310d8360035461568790919063ffffffff16565b11155b9050919050565b600060065442108061312a575060075442115b151561313557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131725760019050613306565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015613204576000905061321a565b613217838261566e90919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561336957600080fd5b60065442108061337a575060075442115b151561338557600080fd5b600c60009054906101000a900460ff161515156133a157600080fd5b6000835190508251811415156133b657600080fd5b60008090506000809050600080600091505b848210156134ad5787828151811015156133de57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061347157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561347b576134a0565b8380600101945050868281518110151561349157fe5b90602001906020020151830192505b81806001019250506133c8565b6000831115156134bc57600080fd5b6134c5836130e8565b15156134d057600080fd5b60006134e78460035461568790919063ffffffff16565b600381905550600092505b858310156137fe57888381518110151561350857fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061359b57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156135a5576137f1565b87838151811015156135b357fe5b90602001906020020151905061361181600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b5481151561379d57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b82806001019350506134f2565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b6000600654421080613870575060075442115b151561387b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561390557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b151561391057600080fd5b60008211151561391f57600080fd5b6000835190506000809050600080600091505b838210156139fb57868281518110151561394857fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806139db57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156139e5576139ee565b82806001019350505b8180600101925050613932565b600083111515613a0a57600080fd5b6000613a1f84886156c890919063ffffffff16565b9050613a2b8982615653565b1515613a3657600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613b8f57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211151515613afb57600080fd5b613b0e828261566e90919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600093505b85841015613d9c578884815181101515613bf757fe5b906020019060200201519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613c8a57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613c9457613d8f565b613ce688600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613be1565b600196505050505050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e0a57600080fd5b60035482108015613e1b5750600082115b15613e295760009050613e35565b81600281905550600190505b919050565b6000600654421080613e4d575060075442115b1515613e5857600080fd5b600082111515613e6757600080fd5b6000835190506000809050600080600091505b83821015613f43578682815181101515613e9057fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613f2357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613f2d57613f36565b82806001019350505b8180600101925050613e7a565b600083111515613f5257600080fd5b6000613f6784886156c890919063ffffffff16565b9050613f733382615653565b1515613f7e57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600092505b8483101561418b578783815181101515613fe657fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061407957506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156140835761417e565b6140d587600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613fd0565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156141f557600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b6000600554905090565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142b757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6040805190810160405280600481526020017f444141430000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156143ed57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156144475750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561445257600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b818111151561453b576144cc615703565b84600083815260200190815260200160002060806040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061452b81606001518561568790919063ffffffff16565b93505080806001019150506144bb565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156145a457600080fd5b6006544210806145b5575060075442115b15156145c057600080fd5b600c60009054906101000a900460ff161515156145dc57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061463d575060075442115b151561464857600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156146b55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156146c057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156146fb57600080fd5b60008111151561470a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561476657600080fd5b6147703386615653565b151561477b57600080fd5b6147cd85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061486285600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561497457600080fd5b600160149054906101000a900460ff16151561498f57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614a3a57600080fd5b600654421080614a4b575060075442115b1515614a5657600080fd5b600c60009054906101000a900460ff16151515614a7257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614aae57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b0a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b6757600080fd5b600082111515614b7657600080fd5b614b7f826130e8565b1515614b8a57600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b54811515614c1f57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614c848560035461568790919063ffffffff16565b600381905550614cdc85600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614e3d57600080fd5b600654421080614e4e575060075442115b1515614e5957600080fd5b600c60009054906101000a900460ff16151515614e7557600080fd5b600082111515614e8457600080fd5b6000835190506000809050600080600091505b83821015614fb8578682815181101515614ead57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614f4057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614f985750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614fa257614fab565b82806001019350505b8180600101925050614e97565b600083111515614fc757600080fd5b6000614fdc84886156c890919063ffffffff16565b9050614fe7816130e8565b1515614ff257600080fd5b6150078160035461568790919063ffffffff16565b600381905550600092505b8483101561535c57878381518110151561502857fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806150bb57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806151135750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561511d5761534f565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b548115156151b257fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506152548a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050615012565b60019550505050505092915050565b60045481565b60055481565b60006153d361538583612911565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b9050919050565b60006006544210806153ed575060075442115b15156153f857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561543557600190506155b4565b60006154c683600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b60008061565f84615377565b90508083111591505092915050565b600082821115151561567c57fe5b818303905092915050565b600080828401905083811015151561569b57fe5b8091505092915050565b60006004546156bf8360055461568790919063ffffffff16565b11159050919050565b6000808314156156db57600090506156fd565b600082840290508284828115156156ee57fe5b041415156156f857fe5b809150505b92915050565b60806040519081016040528060008152602001600081526020016000815260200160008152509056fea165627a7a72305820b96da2245574564edb2cda5f19933e8cae792d3555f320a3b7159cec088eaae40029

Deployed Bytecode

0x60806040526004361061022a576000357c010000000000000000000000000000000000000000000000000000000090048063046f7da21461022f57806306fdde0314610246578063095ea7b3146102d657806318160ddd1461034957806323b872dd146103745780632d21551814610407578063313ce5671461044c5780633badca251461047d57806340c10f19146105ee57806342966c681461066157806342bb66c4146106b457806348cc7b6e1461071157806348eac90214610740578063491eeb3a1461076f5780634fcc1fc01461079e578063560ef1bf1461082257806359dd7ad4146108875780635dd871a314610a185780636618846314610a6b5780636ad9531714610ade57806370a0823114610c4f578063766e33f414610cb457806376f660f614610cdf578063800edb9d14610de657806383f12fec14610e395780638456cb5914610f20578063890b8b9d14610f3757806389b08f1114610f625780638ce31b6314610fc757806395d89b4114610fde5780639aa989791461106e5780639b890104146110f35780639cf4836514611122578063a4c673c514611187578063a9059cbb146111b6578063b703aa3a14611229578063b9b8c24614611258578063bd632e10146112cb578063c04e7e17146113b2578063d26e1414146113dd578063d28cb7b514611408578063d73dd6231461146d578063dd62ed3e146114e0578063de8ae5c014611565578063efc5d18314611590578063f9b41891146115bb575b600080fd5b34801561023b57600080fd5b506102446115e6565b005b34801561025257600080fd5b5061025b611683565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029b578082015181840152602081019050610280565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e257600080fd5b5061032f600480360360408110156102f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116bc565b604051808215151515815260200191505060405180910390f35b34801561035557600080fd5b5061035e611808565b6040518082815260200191505060405180910390f35b34801561038057600080fd5b506103ed6004803603606081101561039757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611812565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b5061044a6004803603604081101561042a57600080fd5b810190808035906020019092919080359060200190929190505050611cb6565b005b34801561045857600080fd5b50610461611d70565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048957600080fd5b506105d4600480360360408110156104a057600080fd5b81019080803590602001906401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460208302840111640100000000831117156104f157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561055157600080fd5b82018360208201111561056357600080fd5b8035906020019184602083028401116401000000008311171561058557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611d75565b604051808215151515815260200191505060405180910390f35b3480156105fa57600080fd5b506106476004803603604081101561061157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612109565b604051808215151515815260200191505060405180910390f35b34801561066d57600080fd5b5061069a6004803603602081101561068457600080fd5b81019080803590602001909291905050506124b3565b604051808215151515815260200191505060405180910390f35b3480156106c057600080fd5b506106f7600480360360408110156106d757600080fd5b81019080803590602001909291908035906020019092919050505061262e565b604051808215151515815260200191505060405180910390f35b34801561071d57600080fd5b50610726612719565b604051808215151515815260200191505060405180910390f35b34801561074c57600080fd5b506107556127df565b604051808215151515815260200191505060405180910390f35b34801561077b57600080fd5b506107846127f2565b604051808215151515815260200191505060405180910390f35b3480156107aa57600080fd5b506107f7600480360360408110156107c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128d4565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561082e57600080fd5b506108716004803603602081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612911565b6040518082815260200191505060405180910390f35b34801561089357600080fd5b506109fe600480360360608110156108aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156108e757600080fd5b8201836020820111156108f957600080fd5b8035906020019184602083028401116401000000008311171561091b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561097b57600080fd5b82018360208201111561098d57600080fd5b803590602001918460208302840111640100000000831117156109af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b64565b604051808215151515815260200191505060405180910390f35b348015610a2457600080fd5b50610a5160048036036020811015610a3b57600080fd5b81019080803590602001909291905050506130e8565b604051808215151515815260200191505060405180910390f35b348015610a7757600080fd5b50610ac460048036036040811015610a8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613117565b604051808215151515815260200191505060405180910390f35b348015610aea57600080fd5b50610c3560048036036040811015610b0157600080fd5b8101908080359060200190640100000000811115610b1e57600080fd5b820183602082011115610b3057600080fd5b80359060200191846020830284011164010000000083111715610b5257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610bb257600080fd5b820183602082011115610bc457600080fd5b80359060200191846020830284011164010000000083111715610be657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061330c565b604051808215151515815260200191505060405180910390f35b348015610c5b57600080fd5b50610c9e60048036036020811015610c7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061380e565b6040518082815260200191505060405180910390f35b348015610cc057600080fd5b50610cc9613857565b6040518082815260200191505060405180910390f35b348015610ceb57600080fd5b50610dcc60048036036060811015610d0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610d3f57600080fd5b820183602082011115610d5157600080fd5b80359060200191846020830284011164010000000083111715610d7357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061385d565b604051808215151515815260200191505060405180910390f35b348015610df257600080fd5b50610e1f60048036036020811015610e0957600080fd5b8101908080359060200190929190505050613dad565b604051808215151515815260200191505060405180910390f35b348015610e4557600080fd5b50610f0660048036036040811015610e5c57600080fd5b8101908080359060200190640100000000811115610e7957600080fd5b820183602082011115610e8b57600080fd5b80359060200191846020830284011164010000000083111715610ead57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613e3a565b604051808215151515815260200191505060405180910390f35b348015610f2c57600080fd5b50610f3561419a565b005b348015610f4357600080fd5b50610f4c61423a565b6040518082815260200191505060405180910390f35b348015610f6e57600080fd5b50610fb160048036036020811015610f8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614244565b6040518082815260200191505060405180910390f35b348015610fd357600080fd5b50610fdc61425c565b005b348015610fea57600080fd5b50610ff36142f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611033578082015181840152602081019050611018565b50505050905090810190601f1680156110605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561107a57600080fd5b506110dd6004803603604081101561109157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061432a565b6040518082815260200191505060405180910390f35b3480156110ff57600080fd5b5061110861434f565b604051808215151515815260200191505060405180910390f35b34801561112e57600080fd5b506111716004803603602081101561114557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614362565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b5061119c614547565b604051808215151515815260200191505060405180910390f35b3480156111c257600080fd5b5061120f600480360360408110156111d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061462a565b604051808215151515815260200191505060405180910390f35b34801561123557600080fd5b5061123e614917565b604051808215151515815260200191505060405180910390f35b34801561126457600080fd5b506112b16004803603604081101561127b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506149dd565b604051808215151515815260200191505060405180910390f35b3480156112d757600080fd5b50611398600480360360408110156112ee57600080fd5b810190808035906020019064010000000081111561130b57600080fd5b82018360208201111561131d57600080fd5b8035906020019184602083028401116401000000008311171561133f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050614de0565b604051808215151515815260200191505060405180910390f35b3480156113be57600080fd5b506113c761536b565b6040518082815260200191505060405180910390f35b3480156113e957600080fd5b506113f2615371565b6040518082815260200191505060405180910390f35b34801561141457600080fd5b506114576004803603602081101561142b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615377565b6040518082815260200191505060405180910390f35b34801561147957600080fd5b506114c66004803603604081101561149057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506153da565b604051808215151515815260200191505060405180910390f35b3480156114ec57600080fd5b5061154f6004803603604081101561150357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506155ba565b6040518082815260200191505060405180910390f35b34801561157157600080fd5b5061157a615641565b6040518082815260200191505060405180910390f35b34801561159c57600080fd5b506115a5615647565b6040518082815260200191505060405180910390f35b3480156115c757600080fd5b506115d061564d565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164157600080fd5b60024203600681905550600142036007819055507fa968378e910134ded7db0a5144e2c6a2d157f1685baa51f39de6c13a5e8ffa8960405160405180910390a1565b6040805190810160405280601f81526020017f4469737472696275746564204164756c742041727420262043756c747572650081525081565b60006006544210806116cf575060075442115b15156116da57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117175760019050611802565b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600354905090565b6000600654421080611825575060075442115b151561183057600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156118a857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118e357600080fd5b6000811115156118f257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561194e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156119aa57600080fd5b6119b48786615653565b15156119bf57600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1857600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808611151515611a8457600080fd5b611a97868261566e90919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611b6a86600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bff86600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d1157600080fd5b8181111515611d1f57600080fd5b81600681905550806007819055507fac04925986d687f5e264774dac7e393e920d61c9b99e92497853eb519484e4dd8282604051808381526020018281526020019250505060405180910390a15050565b601281565b6000600654421080611d88575060075442115b1515611d9357600080fd5b600083519050825181141515611da857600080fd5b60008090506000809050600080600091505b84821015611e9f578782815181101515611dd057fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611e6357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611e6d57611e92565b83806001019450508682815181101515611e8357fe5b90602001906020020151830192505b8180600101925050611dba565b600083111515611eae57600080fd5b611eb83384615653565b1515611ec357600080fd5b82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060008092505b858310156120f9578883815181101515611f2c57fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611fbf57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611fc9576120ec565b8783815181101515611fd757fe5b9060200190602002015190506000811415611ff1576120ec565b61204381600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8280600101935050611f16565b6001965050505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121b35750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156121be57600080fd5b6006544210806121cf575060075442115b15156121da57600080fd5b600160149054906101000a900460ff1615156121f557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122a05750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15156122ab57600080fd5b6122b4826130e8565b15156122bf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156123455761231e826156a5565b151561232957600080fd5b61233e8260055461568790919063ffffffff16565b6005819055505b61235a8260035461568790919063ffffffff16565b6003819055506123b282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006006544210806124c6575060075442115b15156124d157600080fd5b600160149054906101000a900460ff1615156124ec57600080fd5b60006124f733615377565b905080831115151561250857600080fd5b61251d8360035461566e90919063ffffffff16565b60038190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268b57600080fd5b60065442108061269c575060075442115b15156126a757600080fd5b82600a8190555081600b819055506000600c60006101000a81548160ff0219169083151502179055507f4a1179f4d7ff6354606313c42f6054383e9549f9db56ac4b66b424bc940f79ed8383604051808381526020018281526020019250505060405180910390a16001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277657600080fd5b600160149054906101000a900460ff1615151561279257600080fd5b60018060146101000a81548160ff0219169083151502179055507fa039c7af624b7305fc7002f670d116cf0c8b61a558a10ff96be611c5c235751760405160405180910390a16001905090565b600160149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284f57600080fd5b600654421080612860575060075442115b151561286b57600080fd5b600c60009054906101000a900460ff16151561288657600080fd5b6000600c60006101000a81548160ff0219169083151502179055507f14245ee125d3810a2a28f6b656b676516364a51e95a688ddf08af4194fc3db1260405160405180910390a16001905090565b600d602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129f65750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612a0157600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060006001905060008360008081526020019081526020016000206003015490506000600190505b8181111515612b5757612a81615703565b856000838152602001908152602001600020608060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806000015142111515612af457612aed81606001518661568790919063ffffffff16565b9450612b49565b8060200151421015612b48576201518081600001514203811515612b1457fe5b049350612b45816040015185836060015102811515612b2f57fe5b048260600151038661568790919063ffffffff16565b94505b5b508080600101915050612a70565b5082945050505050919050565b6000600654421080612b77575060075442115b1515612b8257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c0c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1515612c1757600080fd5b600083519050825181141515612c2c57600080fd5b60008090506000809050600080600091505b84821015612d23578782815181101515612c5457fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612ce757506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15612cf157612d16565b83806001019450508682815181101515612d0757fe5b90602001906020020151830192505b8180600101925050612c3e565b600083111515612d3257600080fd5b612d3c8984615653565b1515612d4757600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ea057600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808411151515612e0c57600080fd5b612e1f848261566e90919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b83600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060008093505b868410156130d6578984815181101515612f0957fe5b906020019060200201519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f9c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612fa6576130c9565b8884815181101515612fb457fe5b9060200190602002015190506000811415612fce576130c9565b61302081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b8380600101945050612ef3565b60019750505050505050509392505050565b6000806002541480613110575060025461310d8360035461568790919063ffffffff16565b11155b9050919050565b600060065442108061312a575060075442115b151561313557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131725760019050613306565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015613204576000905061321a565b613217838261566e90919063ffffffff16565b90505b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561336957600080fd5b60065442108061337a575060075442115b151561338557600080fd5b600c60009054906101000a900460ff161515156133a157600080fd5b6000835190508251811415156133b657600080fd5b60008090506000809050600080600091505b848210156134ad5787828151811015156133de57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061347157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561347b576134a0565b8380600101945050868281518110151561349157fe5b90602001906020020151830192505b81806001019250506133c8565b6000831115156134bc57600080fd5b6134c5836130e8565b15156134d057600080fd5b60006134e78460035461568790919063ffffffff16565b600381905550600092505b858310156137fe57888381518110151561350857fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061359b57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156135a5576137f1565b87838151811015156135b357fe5b90602001906020020151905061361181600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b5481151561379d57fe5b04815260200185815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055505050505b82806001019350506134f2565b6001965050505050505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b6000600654421080613870575060075442115b151561387b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561390557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b151561391057600080fd5b60008211151561391f57600080fd5b6000835190506000809050600080600091505b838210156139fb57868281518110151561394857fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806139db57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156139e5576139ee565b82806001019350505b8180600101925050613932565b600083111515613a0a57600080fd5b6000613a1f84886156c890919063ffffffff16565b9050613a2b8982615653565b1515613a3657600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613b8f57600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211151515613afb57600080fd5b613b0e828261566e90919063ffffffff16565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600093505b85841015613d9c578884815181101515613bf757fe5b906020019060200201519250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613c8a57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613c9457613d8f565b613ce688600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a35b8380600101945050613be1565b600196505050505050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e0a57600080fd5b60035482108015613e1b5750600082115b15613e295760009050613e35565b81600281905550600190505b919050565b6000600654421080613e4d575060075442115b1515613e5857600080fd5b600082111515613e6757600080fd5b6000835190506000809050600080600091505b83821015613f43578682815181101515613e9057fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480613f2357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613f2d57613f36565b82806001019350505b8180600101925050613e7a565b600083111515613f5257600080fd5b6000613f6784886156c890919063ffffffff16565b9050613f733382615653565b1515613f7e57600080fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600092505b8483101561418b578783815181101515613fe657fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061407957506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156140835761417e565b6140d587600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a35b8280600101935050613fd0565b60019550505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156141f557600080fd5b60014203600681905550639a7ec80042016007819055507fb7e43176b89d4cefed0cca5fc9b2f8e752d3d192b83123ef306a0a55dcd18a6b60405160405180910390a1565b6000600554905090565b60086020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142b757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6040805190810160405280600481526020017f444141430000000000000000000000000000000000000000000000000000000081525081565b6009602052816000526040600020602052806000526040600020600091509150505481565b600c60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156143ed57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156144475750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561445257600080fd5b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080905060008260008081526020019081526020016000206003015490506000600190505b818111151561453b576144cc615703565b84600083815260200190815260200160002060806040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905061452b81606001518561568790919063ffffffff16565b93505080806001019150506144bb565b50819350505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156145a457600080fd5b6006544210806145b5575060075442115b15156145c057600080fd5b600c60009054906101000a900460ff161515156145dc57600080fd5b6001600c60006101000a81548160ff0219169083151502179055507fcd16c719d9bfc829719d0e728b877ea1f29c77fd759480f077f4f6bc2a26e02560405160405180910390a16001905090565b600060065442108061463d575060075442115b151561464857600080fd5b338383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156146b55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156146c057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156146fb57600080fd5b60008111151561470a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561476657600080fd5b6147703386615653565b151561477b57600080fd5b6147cd85600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061486285600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561497457600080fd5b600160149054906101000a900460ff16151561498f57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f5f6f015054fd8937bdf17b86b7684be4ae883d459fb0bec23bc11f75a13b594460405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614a3a57600080fd5b600654421080614a4b575060075442115b1515614a5657600080fd5b600c60009054906101000a900460ff16151515614a7257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614aae57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b0a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b6757600080fd5b600082111515614b7657600080fd5b614b7f826130e8565b1515614b8a57600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b54811515614c1f57fe5b0481526020018681525083600083815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050808260030181905550614c848560035461568790919063ffffffff16565b600381905550614cdc85600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885866040518082815260200191505060405180910390a28573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614e3d57600080fd5b600654421080614e4e575060075442115b1515614e5957600080fd5b600c60009054906101000a900460ff16151515614e7557600080fd5b600082111515614e8457600080fd5b6000835190506000809050600080600091505b83821015614fb8578682815181101515614ead57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480614f4057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80614f985750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15614fa257614fab565b82806001019350505b8180600101925050614e97565b600083111515614fc757600080fd5b6000614fdc84886156c890919063ffffffff16565b9050614fe7816130e8565b1515614ff257600080fd5b6150078160035461568790919063ffffffff16565b600381905550600092505b8483101561535c57878381518110151561502857fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806150bb57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806151135750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561511d5761534f565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008081526020019081526020016000209050600060018260030154019050608060405190810160405280600a548152602001600b54600a5401815260200162015180600b548115156151b257fe5b0481526020018b815250836000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508082600301819055506152548a600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a35050505b8280600101935050615012565b60019550505050505092915050565b60045481565b60055481565b60006153d361538583612911565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461566e90919063ffffffff16565b9050919050565b60006006544210806153ed575060075442115b15156153f857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561543557600190506155b4565b60006154c683600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461568790919063ffffffff16565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a360019150505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b60025481565b600b5481565b60008061565f84615377565b90508083111591505092915050565b600082821115151561567c57fe5b818303905092915050565b600080828401905083811015151561569b57fe5b8091505092915050565b60006004546156bf8360055461568790919063ffffffff16565b11159050919050565b6000808314156156db57600090506156fd565b600082840290508284828115156156ee57fe5b041415156156f857fe5b809150505b92915050565b60806040519081016040528060008152602001600081526020016000815260200160008152509056fea165627a7a72305820b96da2245574564edb2cda5f19933e8cae792d3555f320a3b7159cec088eaae40029

Deployed Bytecode Sourcemap

22696:712:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3056:162:0;;;:::i;:::-;;22743:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22743:68:0;;;:::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;22743:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5839:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5839:307:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5839:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8160:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8160:105:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19322:668;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19322:668:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19322:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2815:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2815:229:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2815:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22874:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22874:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18203:1107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18203:1107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18203:1107:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18203:1107:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18203:1107:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18203:1107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;18203:1107:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18203:1107:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18203:1107:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18203:1107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;18203:1107:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8407:656;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8407:656:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8407:656:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9075:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9075:411:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9075:411:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10878:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10878:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10878:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3587:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:184:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3326:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3326:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10633:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10633:233:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10029:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10029:60:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10029:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15777:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15777:810:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15777:810:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21282:1407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21282:1407:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21282:1407:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21282:1407:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21282:1407:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21282:1407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;21282:1407:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21282:1407:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21282:1407:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21282:1407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;21282:1407:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4623:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4623:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4623:159:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6563:569;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6563:569:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6563:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13710:1539;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13710:1539:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13710:1539:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13710:1539:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13710:1539:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13710:1539:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13710:1539:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13710:1539:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13710:1539:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13710:1539:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13710:1539:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5386:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5386:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5386:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9912:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9912:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20002:1268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20002:1268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20002:1268:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;20002:1268:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20002:1268:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;20002:1268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;20002:1268:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4399:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4399:212:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4399:212:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17238:953;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17238:953:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17238:953:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17238:953:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17238:953:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17238:953:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;17238:953:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2634:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2634:169:0;;;:::i;:::-;;8277:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8277:118:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5071:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5071:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5071:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23308:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23308:87:0;;;:::i;:::-;;22822:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22822:41:0;;;:::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;22822:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5603:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5603:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9991:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9991:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15261:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15261:504:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15261:504:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10390:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10390:231:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16800:424;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16800:424:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16800:424:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3783:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3783:180:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11239:990;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11239:990:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11239:990:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12241:1457;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12241:1457:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12241:1457:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;12241:1457:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12241:1457:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12241:1457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;12241:1457:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4126:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4126:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4172:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4172:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7441:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7441:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7441:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6158:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6158:393:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6158:393:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5679:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5679:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5679:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4087:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4087:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4052:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4052:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9950:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9950:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3056:162;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;3129:1;3123:3;:7;3111:9;:19;;;;3165:1;3159:3;:7;3149;:17;;;;3190:16;;;;;;;;;;3056:162::o;22743:68::-;;;;;;;;;;;;;;;;;;;;:::o;5839:307::-;5919:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;5961:10;5948:23;;:9;:23;;;5944:40;;;5980:4;5973:11;;;;5944:40;6037:5;6003:8;:20;6012:10;6003:20;;;;;;;;;;;;;;;:31;6024:9;6003:31;;;;;;;;;;;;;;;:39;;;;6087:9;6066:38;;6075:10;6066:38;;;6098:5;6066:38;;;;;;;;;;;;;;;;;;6130:4;6123:11;;2480:1;5839:307;;;;:::o;8160:105::-;8205:7;8240:13;;8233:20;;8160:105;:::o;19322:668::-;19443:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;19417:4;19423:2;19427:5;5237:1;5220:19;;:5;:19;;;;5219:44;;;;;5260:1;5245:17;;:3;:17;;;;5219:44;5211:53;;;;;;;;5300:3;5291:12;;:5;:12;;;;5283:21;;;;;;;;5340:1;5331:6;:10;5323:19;;;;;;;;19484:5;;;;;;;;;;;19476:13;;:4;:13;;;;19468:22;;;;;;;;19523:5;;;;;;;;;;;19517:11;;:2;:11;;;;19509:20;;;;;;;;19556:19;19563:4;19569:5;19556:6;:19::i;:::-;19548:28;;;;;;;;19589:15;19633:4;19619:18;;:10;:18;;;;19615:201;;;19668:8;:14;19677:4;19668:14;;;;;;;;;;;;;;;:26;19683:10;19668:26;;;;;;;;;;;;;;;;19658:36;;19730:7;19721:5;:16;;19713:25;;;;;;;;19786:18;19798:5;19786:7;:11;;:18;;;;:::i;:::-;19757:8;:14;19766:4;19757:14;;;;;;;;;;;;;;;:26;19772:10;19757:26;;;;;;;;;;;;;;;:47;;;;19615:201;19844:24;19862:5;19844:7;:13;19852:4;19844:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;19828:7;:13;19836:4;19828:13;;;;;;;;;;;;;;;:40;;;;19893:22;19909:5;19893:7;:11;19901:2;19893:11;;;;;;;;;;;;;;;;:15;;:22;;;;:::i;:::-;19879:7;:11;19887:2;19879:11;;;;;;;;;;;;;;;:36;;;;19946:2;19931:25;;19940:4;19931:25;;;19950:5;19931:25;;;;;;;;;;;;;;;;;;19974:4;19967:11;;;2480:1;;;19322:668;;;;;:::o;2815:229::-;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2906:4;2901:2;:9;2893:18;;;;;;;;2942:4;2930:9;:16;;;;2975:2;2965:7;:12;;;;3001:31;3023:4;3029:2;3001:31;;;;;;;;;;;;;;;;;;;;;;;;2815:229;;:::o;22874:37::-;22909:2;22874:37;:::o;18203:1107::-;18310:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;18335:18;18356:9;:16;18335:37;;18416:7;:14;18399:13;:31;18391:40;;;;;;;;18444:18;18465:1;18444:22;;18477:19;18499:1;18477:23;;18511:6;18528:9;18557:1;18553:5;;18548:225;18564:13;18560:1;:17;18548:225;;;18608:9;18618:1;18608:12;;;;;;;;;;;;;;;;;;18604:16;;18656:1;18643:15;;:1;:15;;;:29;;;;18667:5;;;;;;;;;;;18662:10;;:1;:10;;;18643:29;18639:43;;;18674:8;;18639:43;18701:16;;;;;;;18751:7;18759:1;18751:10;;;;;;;;;;;;;;;;;;18736:25;;;;18548:225;18579:4;;;;;;;18548:225;;;18805:1;18791:11;:15;18783:24;;;;;;;;18826:31;18833:10;18845:11;18826:6;:31::i;:::-;18818:40;;;;;;;;18894:11;18871:7;:19;18879:10;18871:19;;;;;;;;;;;;;;;;:34;;;;;;;;;;;18916:14;18950:1;18946:5;;18941:336;18957:13;18953:1;:17;18941:336;;;19000:9;19010:1;19000:12;;;;;;;;;;;;;;;;;;18996:16;;19048:1;19035:15;;:1;:15;;;:29;;;;19059:5;;;;;;;;;;;19054:10;;:1;:10;;;19035:29;19031:43;;;19066:8;;19031:43;19102:7;19110:1;19102:10;;;;;;;;;;;;;;;;;;19093:19;;19145:1;19135:6;:11;19131:25;;;19148:8;;19131:25;19188:22;19203:6;19188:7;:10;19196:1;19188:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;19175:7;:10;19183:1;19175:10;;;;;;;;;;;;;;;:35;;;;19255:1;19234:31;;19243:10;19234:31;;;19258:6;19234:31;;;;;;;;;;;;;;;;;;18941:336;18972:3;;;;;;;18941:336;;;19294:4;19287:11;;;;;;;;18203:1107;;;;:::o;8407:656::-;8506:4;2044:5;;;;;;;;;;;2030:19;;:10;:19;;;:52;;;;2067:15;;;;;;;;;;;2053:29;;:10;:29;;;2030:52;2022:61;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;3419:13;;;;;;;;;;;3411:22;;;;;;;;8549:5;;;;;;;;;;;8539:15;;:6;:15;;;;:44;;;;;8568:15;;;;;;;;;;;8558:25;;:6;:25;;;;8539:44;8531:53;;;;;;;;8611:15;8619:6;8611:7;:15::i;:::-;8603:24;;;;;;;;8658:15;;;;;;;;;;;8644:29;;:10;:29;;;8640:182;;;8702:25;8720:6;8702:17;:25::i;:::-;8694:34;;;;;;;;8774:36;8803:6;8774:24;;:28;;:36;;;;:::i;:::-;8747:24;:63;;;;8640:182;8858:25;8876:6;8858:13;;:17;;:25;;;;:::i;:::-;8842:13;:41;;;;8912:27;8932:6;8912:7;:15;8920:6;8912:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8894:7;:15;8902:6;8894:15;;;;;;;;;;;;;;;:45;;;;8962:6;8957:20;;;8970:6;8957:20;;;;;;;;;;;;;;;;;;9014:6;8993:36;;9010:1;8993:36;;;9022:6;8993:36;;;;;;;;;;;;;;;;;;9047:4;9040:11;;8407:656;;;;:::o;9075:411::-;9143:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;3419:13;;;;;;;;;;;3411:22;;;;;;;;9168:15;9186:27;9202:10;9186:15;:27::i;:::-;9168:45;;9250:7;9240:6;:17;;9232:26;;;;;;;;9287:25;9305:6;9287:13;;:17;;:25;;;;:::i;:::-;9271:13;:41;;;;9346:6;9323:7;:19;9331:10;9323:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;9375:10;9370:24;;;9387:6;9370:24;;;;;;;;;;;;;;;;;;9439:1;9410:40;;9419:10;9410:40;;;9443:6;9410:40;;;;;;;;;;;;;;;;;;9470:4;9463:11;;;9075:411;;;:::o;10878:349::-;10985:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;11025:13;11010:12;:28;;;;11075:16;11057:15;:34;;;;11128:5;11110:15;;:23;;;;;;;;;;;;;;;;;;11151:42;11161:13;11176:16;11151:42;;;;;;;;;;;;;;;;;;;;;;;;11211:4;11204:11;;10878:349;;;;:::o;3587:184::-;3648:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;3529:13;;;;;;;;;;;3528:14;3520:23;;;;;;;;3689:4;3673:13;;:20;;;;;;;;;;;;;;;;;;3717:12;;;;;;;;;;3755:4;3748:11;;3587:184;:::o;3326:32::-;;;;;;;;;;;;;:::o;10633:233::-;10696:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;10729:15;;;;;;;;;;;10721:24;;;;;;;;10782:5;10764:15;;:23;;;;;;;;;;;;;;;;;;10811:13;;;;;;;;;;10850:4;10843:11;;10633:233;:::o;10029:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15777:810::-;15841:7;15897:1;15877:22;;:8;:22;;;;:43;;;;;15915:5;;;;;;;;;;;15903:17;;:8;:17;;;;15877:43;:74;;;;;15936:15;;;;;;;;;;;15924:27;;:8;:27;;;;15877:74;15869:83;;;;;;;;15965:38;16006:8;:18;16015:8;16006:18;;;;;;;;;;;;;;;15965:59;;16035:15;16053:1;16035:19;;16065:9;16077:1;16065:13;;16089:6;16098:5;:8;16104:1;16098:8;;;;;;;;;;;:15;;;16089:24;;16129:6;16138:1;16129:10;;16124:427;16146:1;16141;:6;;16124:427;;;16174:18;;:::i;:::-;16195:5;:8;16201:1;16195:8;;;;;;;;;;;16174:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16233:3;:9;;;16226:3;:16;;16222:318;;;16281:23;16293:3;:10;;;16281:7;:11;;:23;;;;:::i;:::-;16271:33;;16222:318;;;16357:3;:10;;;16351:3;:16;16347:193;;;16421:6;16407:3;:9;;;16401:3;:15;16400:28;;;;;;;;16396:32;;16465:55;16507:3;:12;;;16503:1;16490:3;:10;;;:14;:29;;;;;;;;16477:3;:10;;;:42;16465:7;:11;;:55;;;;:::i;:::-;16455:65;;16347:193;16222:318;16124:427;16149:4;;;;;;;16124:427;;;;16568:7;16561:14;;;;;;15777:810;;;:::o;21282:1407::-;21407:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;21456:1;21440:18;;:4;:18;;;;:35;;;;;21470:5;;;;;;;;;;;21462:13;;:4;:13;;;;21440:35;21432:44;;;;;;;;21489:18;21510:9;:16;21489:37;;21562:7;:14;21545:13;:31;21537:40;;;;;;;;21590:18;21611:1;21590:22;;21623:19;21645:1;21623:23;;21657:6;21674:9;21703:1;21699:5;;21694:225;21710:13;21706:1;:17;21694:225;;;21754:9;21764:1;21754:12;;;;;;;;;;;;;;;;;;21750:16;;21802:1;21789:15;;:1;:15;;;:29;;;;21813:5;;;;;;;;;;;21808:10;;:1;:10;;;21789:29;21785:43;;;21820:8;;21785:43;21847:16;;;;;;;21897:7;21905:1;21897:10;;;;;;;;;;;;;;;;;;21882:25;;;;21694:225;21725:4;;;;;;;21694:225;;;21951:1;21937:11;:15;21929:24;;;;;;;;21972:25;21979:4;21985:11;21972:6;:25::i;:::-;21964:34;;;;;;;;22011:15;22055:4;22041:18;;:10;:18;;;;22037:213;;;22090:8;:14;22099:4;22090:14;;;;;;;;;;;;;;;:26;22105:10;22090:26;;;;;;;;;;;;;;;;22080:36;;22158:7;22143:11;:22;;22135:31;;;;;;;;22214:24;22226:11;22214:7;:11;;:24;;;;:::i;:::-;22185:8;:14;22194:4;22185:14;;;;;;;;;;;;;;;:26;22200:10;22185:26;;;;;;;;;;;;;;;:53;;;;22037:213;22279:11;22262:7;:13;22270:4;22262:13;;;;;;;;;;;;;;;;:28;;;;;;;;;;;22301:14;22335:1;22331:5;;22326:330;22342:13;22338:1;:17;22326:330;;;22385:9;22395:1;22385:12;;;;;;;;;;;;;;;;;;22381:16;;22433:1;22420:15;;:1;:15;;;:29;;;;22444:5;;;;;;;;;;;22439:10;;:1;:10;;;22420:29;22416:43;;;22451:8;;22416:43;22487:7;22495:1;22487:10;;;;;;;;;;;;;;;;;;22478:19;;22530:1;22520:6;:11;22516:25;;;22533:8;;22516:25;22573:22;22588:6;22573:7;:10;22581:1;22573:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;22560:7;:10;22568:1;22560:10;;;;;;;;;;;;;;;:35;;;;22634:1;22619:25;;22628:4;22619:25;;;22637:6;22619:25;;;;;;;;;;;;;;;;;;22326:330;22357:3;;;;;;;22326:330;;;22673:4;22666:11;;;;;;;;;21282:1407;;;;;:::o;4623:159::-;4678:4;4724:1;4711:9;;:14;4710:60;;;;4760:9;;4731:25;4749:6;4731:13;;:17;;:25;;;;:::i;:::-;:38;;4710:60;4703:67;;4623:159;;;:::o;6563:569::-;6652:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;6694:10;6681:23;;:9;:23;;;6677:40;;;6713:4;6706:11;;;;6677:40;6736:13;6752:8;:20;6761:10;6752:20;;;;;;;;;;;;;;;:31;6773:9;6752:31;;;;;;;;;;;;;;;;6736:47;;6814:5;6806;:13;6802:169;;;6856:1;6848:9;;6802:169;;;6935:16;6945:5;6935;:9;;:16;;;;:::i;:::-;6927:24;;6802:169;7023:5;6989:8;:20;6998:10;6989:20;;;;;;;;;;;;;;;:31;7010:9;6989:31;;;;;;;;;;;;;;;:39;;;;7073:9;7052:38;;7061:10;7052:38;;;7084:5;7052:38;;;;;;;;;;;;;;;;;;7116:4;7109:11;;;2480:1;6563:569;;;;:::o;13710:1539::-;13835:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;10152:15;;;;;;;;;;;10151:16;10143:25;;;;;;;;13860:20;13883:9;:16;13860:39;;13945:7;:14;13926:15;:33;13918:42;;;;;;;;13973:19;13995:1;13973:23;;14007:19;14029:1;14007:23;;14041:6;14058:9;14087:1;14083:5;;14078:228;14094:15;14090:1;:19;14078:228;;;14140:9;14150:1;14140:12;;;;;;;;;;;;;;;;;;14136:16;;14188:1;14175:15;;:1;:15;;;:29;;;;14199:5;;;;;;;;;;;14194:10;;:1;:10;;;14175:29;14171:43;;;14206:8;;14171:43;14233:17;;;;;;;14284:7;14292:1;14284:10;;;;;;;;;;;;;;;;;;14269:25;;;;14078:228;14111:4;;;;;;;14078:228;;;14338:1;14324:11;:15;14316:24;;;;;;;;14359:20;14367:11;14359:7;:20::i;:::-;14351:29;;;;;;;;14393:14;14434:30;14452:11;14434:13;;:17;;:30;;;;:::i;:::-;14418:13;:46;;;;14484:1;14480:5;;14475:739;14491:15;14487:1;:19;14475:739;;;14537:9;14547:1;14537:12;;;;;;;;;;;;;;;;;;14533:16;;14585:1;14572:15;;:1;:15;;;:29;;;;14596:5;;;;;;;;;;;14591:10;;:1;:10;;;14572:29;14568:43;;;14603:8;;14568:43;14639:7;14647:1;14639:10;;;;;;;;;;;;;;;;;;14630:19;;14681:22;14696:6;14681:7;:10;14689:1;14681:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;14668:7;:10;14676:1;14668:10;;;;;;;;;;;;;;;:35;;;;14732:1;14727:15;;;14735:6;14727:15;;;;;;;;;;;;;;;;;;14787:1;14766:31;;14783:1;14766:31;;;14790:6;14766:31;;;;;;;;;;;;;;;;;;14810:38;14851:8;:11;14860:1;14851:11;;;;;;;;;;;;;;;14810:52;;14873:20;14896:5;:8;14902:1;14896:8;;;;;;;;;;;14873:31;;14915:10;14942:1;14928:4;:11;;;:15;14915:28;;14969:203;;;;;;;;;15003:12;;14969:203;;;;15057:15;;15042:12;;:30;14969:203;;;;15120:6;15101:15;;:26;;;;;;;;14969:203;;;;15154:6;14969:203;;;14954:5;:12;14960:5;14954:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15197:5;15183:4;:11;;:19;;;;14475:739;;;;14508:4;;;;;;;14475:739;;;15233:4;15226:11;;;;;;;;13710:1539;;;;:::o;5386:115::-;5441:7;5476;:13;5484:4;5476:13;;;;;;;;;;;;;;;;5469:20;;5386:115;;;:::o;9912:27::-;;;;:::o;20002:1268::-;20117:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;20166:1;20150:18;;:4;:18;;;;:35;;;;;20180:5;;;;;;;;;;;20172:13;;:4;:13;;;;20150:35;20142:44;;;;;;;;20222:1;20213:6;:10;20205:19;;;;;;;;20237:18;20258:9;:16;20237:37;;20285:18;20306:1;20285:22;;20318:6;20335:9;20364:1;20360:5;;20355:181;20371:13;20367:1;:17;20355:181;;;20415:9;20425:1;20415:12;;;;;;;;;;;;;;;;;;20411:16;;20463:1;20450:15;;:1;:15;;;:29;;;;20474:5;;;;;;;;;;;20469:10;;:1;:10;;;20450:29;20446:43;;;20481:8;;20446:43;20508:16;;;;;;;20355:181;20386:4;;;;;;;20355:181;;;20570:1;20554:13;:17;20546:26;;;;;;;;20585:19;20607:34;20626:13;20607:6;:10;;:34;;;;:::i;:::-;20585:56;;20660:25;20667:4;20673:11;20660:6;:25::i;:::-;20652:34;;;;;;;;20699:15;20743:4;20729:18;;:10;:18;;;;20725:213;;;20778:8;:14;20787:4;20778:14;;;;;;;;;;;;;;;:26;20793:10;20778:26;;;;;;;;;;;;;;;;20768:36;;20846:7;20831:11;:22;;20823:31;;;;;;;;20902:24;20914:11;20902:7;:11;;:24;;;;:::i;:::-;20873:8;:14;20882:4;20873:14;;;;;;;;;;;;;;;:26;20888:10;20873:26;;;;;;;;;;;;;;;:53;;;;20725:213;20967:11;20950:7;:13;20958:4;20950:13;;;;;;;;;;;;;;;;:28;;;;;;;;;;;20998:1;20994:5;;20989:248;21005:13;21001:1;:17;20989:248;;;21048:9;21058:1;21048:12;;;;;;;;;;;;;;;;;;21044:16;;21096:1;21083:15;;:1;:15;;;:29;;;;21107:5;;;;;;;;;;;21102:10;;:1;:10;;;21083:29;21079:43;;;21114:8;;21079:43;21154:22;21169:6;21154:7;:10;21162:1;21154:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;21141:7;:10;21149:1;21141:10;;;;;;;;;;;;;;;:35;;;;21215:1;21200:25;;21209:4;21200:25;;;21218:6;21200:25;;;;;;;;;;;;;;;;;;20989:248;21020:3;;;;;;;20989:248;;;21254:4;21247:11;;;;;;;;20002:1268;;;;;:::o;4399:212::-;4459:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;4495:13;;4488:4;:20;:32;;;;;4519:1;4512:4;:8;4488:32;4484:50;;;4529:5;4522:12;;;;4484:50;4565:4;4553:9;:16;;;;4595:4;4588:11;;1951:1;4399:212;;;:::o;17238:953::-;17334:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;17376:1;17367:6;:10;17359:19;;;;;;;;17391:18;17412:9;:16;17391:37;;17439:18;17460:1;17439:22;;17472:6;17489:9;17518:1;17514:5;;17509:181;17525:13;17521:1;:17;17509:181;;;17569:9;17579:1;17569:12;;;;;;;;;;;;;;;;;;17565:16;;17617:1;17604:15;;:1;:15;;;:29;;;;17628:5;;;;;;;;;;;17623:10;;:1;:10;;;17604:29;17600:43;;;17635:8;;17600:43;17662:16;;;;;;;17509:181;17540:4;;;;;;;17509:181;;;17724:1;17708:13;:17;17700:26;;;;;;;;17739:19;17761:34;17780:13;17761:6;:10;;:34;;;;:::i;:::-;17739:56;;17814:31;17821:10;17833:11;17814:6;:31::i;:::-;17806:40;;;;;;;;17882:11;17859:7;:19;17867:10;17859:19;;;;;;;;;;;;;;;;:34;;;;;;;;;;;17913:1;17909:5;;17904:254;17920:13;17916:1;:17;17904:254;;;17963:9;17973:1;17963:12;;;;;;;;;;;;;;;;;;17959:16;;18011:1;17998:15;;:1;:15;;;:29;;;;18022:5;;;;;;;;;;;18017:10;;:1;:10;;;17998:29;17994:43;;;18029:8;;17994:43;18069:22;18084:6;18069:7;:10;18077:1;18069:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;18056:7;:10;18064:1;18056:10;;;;;;;;;;;;;;;:35;;;;18136:1;18115:31;;18124:10;18115:31;;;18139:6;18115:31;;;;;;;;;;;;;;;;;;17904:254;17935:3;;;;;;;17904:254;;;18175:4;18168:11;;;;;;;17238:953;;;;:::o;2634:169::-;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2706:1;2700:3;:7;2688:9;:19;;;;2742:10;2736:3;:16;2726:7;:26;;;;2776:15;;;;;;;;;;2634:169::o;8277:118::-;8324:7;8359:24;;8352:31;;8277:118;:::o;5071:42::-;;;;;;;;;;;;;;;;;:::o;23308:87::-;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;23377:5;;;;;;;;;;;23364:19;;;22822:41;;;;;;;;;;;;;;;;;;;;:::o;5603:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9991:27::-;;;;;;;;;;;;;:::o;15261:504::-;15327:7;15383:1;15363:22;;:8;:22;;;;:43;;;;;15401:5;;;;;;;;;;;15389:17;;:8;:17;;;;15363:43;:74;;;;;15422:15;;;;;;;;;;;15410:27;;:8;:27;;;;15363:74;15355:83;;;;;;;;15451:38;15492:8;:18;15501:8;15492:18;;;;;;;;;;;;;;;15451:59;;15521:15;15539:1;15521:19;;15551:6;15560:5;:8;15566:1;15560:8;;;;;;;;;;;:15;;;15551:24;;15591:6;15600:1;15591:10;;15586:143;15608:1;15603;:6;;15586:143;;;15636:18;;:::i;:::-;15657:5;:8;15663:1;15657:8;;;;;;;;;;;15636:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15694:23;15706:3;:10;;;15694:7;:11;;:23;;;;:::i;:::-;15684:33;;15586:143;15611:4;;;;;;;15586:143;;;;15746:7;15739:14;;;;;15261:504;;;:::o;10390:231::-;10452:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;10486:15;;;;;;;;;;;10485:16;10477:25;;;;;;;;10539:4;10521:15;;:22;;;;;;;;;;;;;;;;;;10567:12;;;;;;;;;;10605:4;10598:11;;10390:231;:::o;16800:424::-;16917:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;16881:10;16893:6;16901:5;5237:1;5220:19;;:5;:19;;;;5219:44;;;;;5260:1;5245:17;;:3;:17;;;;5219:44;5211:53;;;;;;;;5300:3;5291:12;;:5;:12;;;;5283:21;;;;;;;;5340:1;5331:6;:10;5323:19;;;;;;;;16960:5;;;;;;;;;;;16950:15;;:6;:15;;;;16942:24;;;;;;;;16993:25;17000:10;17012:5;16993:6;:25::i;:::-;16985:34;;;;;;;;17054:30;17078:5;17054:7;:19;17062:10;17054:19;;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;17032:7;:19;17040:10;17032:19;;;;;;;;;;;;;;;:52;;;;17113:26;17133:5;17113:7;:15;17121:6;17113:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;17095:7;:15;17103:6;17095:15;;;;;;;;;;;;;;;:44;;;;17176:6;17155:35;;17164:10;17155:35;;;17184:5;17155:35;;;;;;;;;;;;;;;;;;17208:4;17201:11;;2480:1;;;16800:424;;;;:::o;3783:180::-;3840:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;3419:13;;;;;;;;;;;3411:22;;;;;;;;3881:5;3865:13;;:21;;;;;;;;;;;;;;;;;;3910:11;;;;;;;;;;3947:4;3940:11;;3783:180;:::o;11239:990::-;11338:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;10152:15;;;;;;;;;;;10151:16;10143:25;;;;;;;;11391:1;11371:22;;:8;:22;;;;11363:31;;;;;;;;11433:5;;;;;;;;;;;11421:17;;:8;:17;;;;11413:26;;;;;;;;11478:15;;;;;;;;;;;11466:27;;:8;:27;;;;11458:36;;;;;;;;11530:1;11521:6;:10;11513:19;;;;;;;;11559:15;11567:6;11559:7;:15::i;:::-;11551:24;;;;;;;;11588:38;11629:8;:18;11638:8;11629:18;;;;;;;;;;;;;;;11588:59;;11658:20;11681:5;:8;11687:1;11681:8;;;;;;;;;;;11658:31;;11700:10;11727:1;11713:4;:11;;;:15;11700:28;;11754:203;;;;;;;;;11788:12;;11754:203;;;;11842:15;;11827:12;;:30;11754:203;;;;11905:6;11886:15;;:26;;;;;;;;11754:203;;;;11939:6;11754:203;;;11739:5;:12;11745:5;11739:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:5;11968:4;:11;;:19;;;;12016:25;12034:6;12016:13;;:17;;:25;;;;:::i;:::-;12000:13;:41;;;;12072:29;12094:6;12072:7;:17;12080:8;12072:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12052:7;:17;12060:8;12052:17;;;;;;;;;;;;;;;:49;;;;12122:8;12117:22;;;12132:6;12117:22;;;;;;;;;;;;;;;;;;12176:8;12155:38;;12172:1;12155:38;;;12186:6;12155:38;;;;;;;;;;;;;;;;;;12213:4;12206:11;;;;;11239:990;;;;:::o;12241:1457::-;12355:4;1926:5;;;;;;;;;;;1912:19;;:10;:19;;;1904:28;;;;;;;;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;10152:15;;;;;;;;;;;10151:16;10143:25;;;;;;;;12397:1;12388:6;:10;12380:19;;;;;;;;12412:20;12435:9;:16;12412:39;;12462:19;12484:1;12462:23;;12496:6;12513:9;12542:1;12538:5;;12533:208;12549:15;12545:1;:19;12533:208;;;12595:9;12605:1;12595:12;;;;;;;;;;;;;;;;;;12591:16;;12643:1;12630:15;;:1;:15;;;:29;;;;12654:5;;;;;;;;;;;12649:10;;:1;:10;;;12630:29;:53;;;;12668:15;;;;;;;;;;;12663:20;;:1;:20;;;12630:53;12626:67;;;12685:8;;12626:67;12712:17;;;;;;;12533:208;12566:4;;;;;;;12533:208;;;12776:1;12759:14;:18;12751:27;;;;;;;;12791:19;12813:35;12832:14;12813:6;:10;;:35;;;;:::i;:::-;12791:57;;12867:20;12875:11;12867:7;:20::i;:::-;12859:29;;;;;;;;12917:30;12935:11;12917:13;;:17;;:30;;;;:::i;:::-;12901:13;:46;;;;12969:1;12965:5;;12960:703;12976:15;12972:1;:19;12960:703;;;13022:9;13032:1;13022:12;;;;;;;;;;;;;;;;;;13018:16;;13070:1;13057:15;;:1;:15;;;:29;;;;13081:5;;;;;;;;;;;13076:10;;:1;:10;;;13057:29;:53;;;;13095:15;;;;;;;;;;;13090:20;;:1;:20;;;13057:53;13053:67;;;13112:8;;13053:67;13133:38;13174:8;:11;13183:1;13174:11;;;;;;;;;;;;;;;13133:52;;13196:20;13219:5;:8;13225:1;13219:8;;;;;;;;;;;13196:31;;13238:10;13265:1;13251:4;:11;;;:15;13238:28;;13292:203;;;;;;;;;13326:12;;13292:203;;;;13380:15;;13365:12;;:30;13292:203;;;;13443:6;13424:15;;:26;;;;;;;;13292:203;;;;13477:6;13292:203;;;13277:5;:12;13283:5;13277:12;;;;;;;;;;;:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13520:5;13506:4;:11;;:19;;;;13551:22;13566:6;13551:7;:10;13559:1;13551:10;;;;;;;;;;;;;;;;:14;;:22;;;;:::i;:::-;13538:7;:10;13546:1;13538:10;;;;;;;;;;;;;;;:35;;;;13594:1;13589:15;;;13597:6;13589:15;;;;;;;;;;;;;;;;;;13641:1;13620:31;;13637:1;13620:31;;;13644:6;13620:31;;;;;;;;;;;;;;;;;;12960:703;;;;12993:4;;;;;;;12960:703;;;13682:4;13675:11;;;;;;;12241:1457;;;;:::o;4126:35::-;;;;:::o;4172:39::-;;;;:::o;7441:147::-;7502:7;7537:39;7555:20;7570:4;7555:14;:20::i;:::-;7537:7;:13;7545:4;7537:13;;;;;;;;;;;;;;;;:17;;:39;;;;:::i;:::-;7530:46;;7441:147;;;:::o;6158:393::-;6247:4;2434:9;;2428:3;:15;:32;;;;2453:7;;2447:3;:13;2428:32;2420:41;;;;;;;;6289:10;6276:23;;:9;:23;;;6272:40;;;6308:4;6301:11;;;;6272:40;6331:13;6347:42;6383:5;6347:8;:20;6356:10;6347:20;;;;;;;;;;;;;;;:31;6368:9;6347:31;;;;;;;;;;;;;;;;:35;;:42;;;;:::i;:::-;6331:58;;6442:5;6408:8;:20;6417:10;6408:20;;;;;;;;;;;;;;;:31;6429:9;6408:31;;;;;;;;;;;;;;;:39;;;;6492:9;6471:38;;6480:10;6471:38;;;6503:5;6471:38;;;;;;;;;;;;;;;;;;6535:4;6528:11;;;2480:1;6158:393;;;;:::o;5679:148::-;5754:7;5789:8;:15;5798:5;5789:15;;;;;;;;;;;;;;;:26;5805:9;5789:26;;;;;;;;;;;;;;;;5782:33;;5679:148;;;;:::o;4087:28::-;;;;:::o;4052:24::-;;;;:::o;9950:30::-;;;;:::o;16599:189::-;16669:4;16694:15;16712:21;16728:4;16712:15;:21::i;:::-;16694:39;;16769:7;16759:6;:17;;16752:24;;;16599:189;;;;:::o;557:144::-;616:7;656:1;651;:6;;644:14;;;;;;688:1;684;:5;677:12;;557:144;;;;:::o;713:176::-;772:7;800:9;816:1;812;:5;800:17;;848:1;843;:6;;836:14;;;;;;876:1;869:8;;;713:176;;;;:::o;4802:170::-;4867:4;4939:20;;4899:36;4928:6;4899:24;;:28;;:36;;;;:::i;:::-;:60;;4892:68;;4802:170;;;:::o;157:265::-;216:7;253:1;248;:6;244:67;;;290:1;283:8;;;;244:67;329:9;345:1;341;:5;329:17;;381:1;376;372;:5;;;;;;;;:10;365:18;;;;;;409:1;402:8;;;157:265;;;;;:::o;22696:712::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://b96da2245574564edb2cda5f19933e8cae792d3555f320a3b7159cec088eaae4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.