ETH Price: $1,999.22 (+3.21%)
Gas: 0.04 Gwei

Contract

0xc12eCeE46ed65D970EE5C899FCC7AE133AfF9b03
 

Overview

ETH Balance

2.02864996021112996 ETH

Eth Value

$4,055.71 (@ $1,999.22/ETH)

More Info

Private Name Tags

TokenTracker

TRYfinance (TRY) ($0.7426)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve240059102025-12-13 19:56:1186 days ago1765655771IN
TRYfinance: TRY Token
0 ETH0.000013250.28518053
Approve239758732025-12-09 14:40:5990 days ago1765291259IN
TRYfinance: TRY Token
0 ETH0.000014450.31270419
Approve239758562025-12-09 14:37:3590 days ago1765291055IN
TRYfinance: TRY Token
0 ETH0.000015240.32987928
Approve239758282025-12-09 14:31:1190 days ago1765290671IN
TRYfinance: TRY Token
0 ETH0.000103492.2387031
Approve239345752025-12-03 18:03:4796 days ago1764785027IN
TRYfinance: TRY Token
0 ETH0.000003850.1460099
Approve239086412025-11-30 2:57:2399 days ago1764471443IN
TRYfinance: TRY Token
0 ETH0.00000630.1361801
Approve227392922025-06-19 15:02:23263 days ago1750345343IN
TRYfinance: TRY Token
0 ETH0.000071192.93347704
Approve227392772025-06-19 14:59:23263 days ago1750345163IN
TRYfinance: TRY Token
0 ETH0.000131662.82820105
Transfer225772062025-05-27 22:48:47286 days ago1748386127IN
TRYfinance: TRY Token
0.00005 ETH0.000053672.55586491
Approve225530482025-05-24 13:38:11289 days ago1748093891IN
TRYfinance: TRY Token
0 ETH0.000023760.97919001
Approve224080522025-05-04 4:34:35309 days ago1746333275IN
TRYfinance: TRY Token
0 ETH0.00006381.37067664
Approve224016292025-05-03 7:01:59310 days ago1746255719IN
TRYfinance: TRY Token
0 ETH0.000021520.88686463
Approve223974822025-05-02 17:03:35311 days ago1746205415IN
TRYfinance: TRY Token
0 ETH0.000188374.04638222
Approve220625252025-03-16 22:47:59358 days ago1742165279IN
TRYfinance: TRY Token
0 ETH0.000016980.7
Approve220123842025-03-09 22:46:11365 days ago1741560371IN
TRYfinance: TRY Token
0 ETH0.000065861.42333313
Transfer220123772025-03-09 22:44:47365 days ago1741560287IN
TRYfinance: TRY Token
0 ETH0.000223712.06320289
Approve220122512025-03-09 22:19:35365 days ago1741558775IN
TRYfinance: TRY Token
0 ETH0.000124392.67564595
Approve217944092025-02-07 11:44:11395 days ago1738928651IN
TRYfinance: TRY Token
0 ETH0.000068111.46318993
Approve217538232025-02-01 19:41:11401 days ago1738438871IN
TRYfinance: TRY Token
0 ETH0.000120384.12768504
Approve217121222025-01-26 23:58:35406 days ago1737935915IN
TRYfinance: TRY Token
0 ETH0.000439639.45598794
Approve215503952025-01-04 10:03:59429 days ago1735985039IN
TRYfinance: TRY Token
0 ETH0.000334237.18896806
Approve214633972024-12-23 6:27:59441 days ago1734935279IN
TRYfinance: TRY Token
0 ETH0.000281836.06182421
Approve214125712024-12-16 4:04:11448 days ago1734321851IN
TRYfinance: TRY Token
0 ETH0.000425529.20940359
Approve214123782024-12-16 3:25:23448 days ago1734319523IN
TRYfinance: TRY Token
0 ETH0.0005905512.7021076
Transfer213998242024-12-14 9:21:35450 days ago1734168095IN
TRYfinance: TRY Token
0 ETH0.000698619
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-115831012021-01-03 18:19:441891 days ago1609697984
TRYfinance: TRY Token
180 ETH
-115830362021-01-03 18:05:461891 days ago1609697146
TRYfinance: TRY Token
0.01425 ETH
-115829522021-01-03 17:46:101891 days ago1609695970
TRYfinance: TRY Token
0.285 ETH
-115829492021-01-03 17:45:401891 days ago1609695940
TRYfinance: TRY Token
0.57 ETH
-115829482021-01-03 17:45:381891 days ago1609695938
TRYfinance: TRY Token
1.14 ETH
-115829472021-01-03 17:45:121891 days ago1609695912
TRYfinance: TRY Token
0.171 ETH
-115829412021-01-03 17:44:241891 days ago1609695864
TRYfinance: TRY Token
0.0285 ETH
-115829372021-01-03 17:43:491891 days ago1609695829
TRYfinance: TRY Token
0.57 ETH
-115829332021-01-03 17:43:051891 days ago1609695785
TRYfinance: TRY Token
0.285 ETH
-115829302021-01-03 17:42:371891 days ago1609695757
TRYfinance: TRY Token
0.57 ETH
-115829302021-01-03 17:42:371891 days ago1609695757
TRYfinance: TRY Token
1.71 ETH
-115829222021-01-03 17:41:401891 days ago1609695700
TRYfinance: TRY Token
0.2451 ETH
-115829172021-01-03 17:39:581891 days ago1609695598
TRYfinance: TRY Token
0.228 ETH
-115829092021-01-03 17:36:591891 days ago1609695419
TRYfinance: TRY Token
0.285 ETH
-115828982021-01-03 17:36:121891 days ago1609695372
TRYfinance: TRY Token
0.057 ETH
-115828962021-01-03 17:35:301891 days ago1609695330
TRYfinance: TRY Token
1.14 ETH
-115828872021-01-03 17:33:501891 days ago1609695230
TRYfinance: TRY Token
0.4845 ETH
-115828832021-01-03 17:33:171891 days ago1609695197
TRYfinance: TRY Token
0.684 ETH
-115828832021-01-03 17:33:171891 days ago1609695197
TRYfinance: TRY Token
0.285 ETH
-115828792021-01-03 17:32:501891 days ago1609695170
TRYfinance: TRY Token
0.285 ETH
-115828782021-01-03 17:32:391891 days ago1609695159
TRYfinance: TRY Token
0.4275 ETH
-115828722021-01-03 17:30:541891 days ago1609695054
TRYfinance: TRY Token
1.425 ETH
-115828582021-01-03 17:28:031891 days ago1609694883
TRYfinance: TRY Token
0.0285 ETH
-115828572021-01-03 17:27:391891 days ago1609694859
TRYfinance: TRY Token
1.71 ETH
-115828562021-01-03 17:27:271891 days ago1609694847
TRYfinance: TRY Token
0.57 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TRYfinance

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license, Audited
/**
 *Submitted for verification at Etherscan.io on 2020-12-31
*/

/* TRY token has been being developed since 10/2020 and has more features than most other DEFI token's on the market, here is a summary of built in features that TRY token offers:
 
 * We added a brand new feature never seen before in any DEFI token, a tx reward pool, 1% of all transactions are given to the reward pool and are awarded to the sender of every 25th transaction.
 * We added a deflationary burn fee of 1% on every tx which is automatically sent directly to the burn address upon every transfer, this feature will ensure a truly deflationary model.
 * We wanted to discourage token dumping so we added a 5% antiDumpFee to all TRY sold on UNIswap. This fee is distributed to all TRYstake users when buyback feature is performed.
 * Previous rebalance liquidity models used a liquidity divisor as a liquidity reward, however that process made the rebalance feature not as effective since it had to rebalance its own rewards.
 * To help replace the removal of awarding liquidity providers via the Buyback function we will allow LP tokens to farm TRY tokens directly on TRYfarm.
 * We coded this contract to have the ability to ADDfunds into TRYstake so it can directly be its own UNIswap sell fee rewards distributor. The staking rewards distribution is called every time 
   a user performs the rebalance liquidity function. The rebalance function still burns TRY that it purchases with the rebalance increasing the effectiveness of the deflationary model.
 * When Buyback function is called the caller gets a 4% reward of the buyback TRY amount and 96% of the buyback TRY amount gets sent directly to the burn address.
 * We coded the buyback function to work on 2 hour intervals and set the rate to 1%, we also added the ability for this contract to add 20 seconds to the buyback interval on each use of the 
   buyback function. This will help ensure that the buyback feature cannot be manipulated and insure maximum life expectancy of the feature.
 * We ensured that all of TRY protocols are whitelist able so when you use them you will not incur any transactional fee's when sending TRY to those protocols.
 * Once this contract creates the UNIswap pair the LP tokens that are sent back are unable to be removed, there is no withdrawal code for these LP tokens this locked them for their intended purpose forever.
 * We added the ability to add and remove blacklist addresses, this will help insure that we can properly fight hackers and malicious intents on TRY token's economy.
 * We added createUNISwapPair function that will ensure ETH collected for liquidity can only be used for that one specific purpose, TRY presale contract automatically sends ETH liquidity to this contract.
 * We are sure that TRY will be the most successful project to ever use a rebalancer style feature, TRYstake will ensure TRY tokens are happy earning in the staking contracts and not on the market to lower 
   the price. UNIswap sell fees will discourage selling, while offering incentivized rewards for staking. TRYfarm will directly reward liquidity providers in replacement of the liquidity reward distribution 
   on the previous model. The Tx Reward pool feature helps complete the package, TRY token has the most rewarding features of any DEFI token!
 
 For more information please visit try.finance/whitepaper.html 
*/

pragma solidity ^0.5.17;


contract Context {

    constructor () internal { }


    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract WhitelistAdminRole is Context {
    using Roles for Roles.Role;

    event WhitelistAdminAdded(address indexed account);
    event WhitelistAdminRemoved(address indexed account);

    Roles.Role private _whitelistAdmins;

    constructor () internal {
        _addWhitelistAdmin(_msgSender());
    }

    modifier onlyWhitelistAdmin() {
        require(isWhitelistAdmin(_msgSender()), "WhitelistAdminRole: caller does not have the WhitelistAdmin role");
        _;
    }

    function isWhitelistAdmin(address account) public view returns (bool) {
        return _whitelistAdmins.has(account);
    }
    function addWhitelistAdmin(address account) public onlyWhitelistAdmin {
        _addWhitelistAdmin(account);
    }

    function renounceWhitelistAdmin() public {
        _removeWhitelistAdmin(_msgSender());
    }

    function _addWhitelistAdmin(address account) internal {
        _whitelistAdmins.add(account);
        emit WhitelistAdminAdded(account);
    } 

    function _removeWhitelistAdmin(address account) internal {
        _whitelistAdmins.remove(account);
        emit WhitelistAdminRemoved(account);
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);
     
    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    function ceil(uint a, uint m) internal pure returns (uint r) {
        return (a + m - 1) / m * m;
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;
    constructor (uint256 totalSupply) public {
        _mint(_msgSender(),totalSupply);
    }
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));
    }
}

contract ERC20Burnable is Context, ERC20 {

    function burn(uint256 amount) public {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

contract ERC20TransferLiquidityLock is ERC20 {
    using SafeMath for uint256;


    event Rebalance(uint256 tokenBurnt);
    event SupplyTRYStake(uint256 tokenAmount);
    event RewardStakers(uint256 stakingRewards);
    
    address public uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public uniswapV2Factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
    address public uniswapV2Pair; 
    address public TRYStake;
    address public presaleAddress;
    address public LPFarm; 
    address public Master = address (uniswapV2Router);     
    address public Trident = address (this);
    address payable public treasury;
    mapping(address => bool) public feelessAddr;
    mapping(address => bool) public unlocked;
    mapping(address => bool) public oracle; 
    mapping(address => bool) public blacklist; 
    
    uint256 public rewardPoolDivisor;
    uint256 public rebalanceRewardDivisor;
    uint256 public rebalanceDivisor; 
    uint256 public burnTxFee;    
    uint256 public antiDumpFee;       
    uint256 public minRebalanceAmount;
    uint256 public lastRebalance;
    uint256 public rebalanceInterval;
    address public burnAddr = 0x000000000000000000000000000000000000dEaD;
    bool public LPLocked; 
    
    uint256 public txNumber;
    uint256 one = 1000000000000000000;
    uint256 public trans100 = 25000000000000000000; 
    
    uint256 public stakePool = 0;
    uint256 public rewardPool = 0;    

    bool public locked;
    Balancer balancer;
    
    constructor() public {
        lastRebalance = block.timestamp;
        burnTxFee = 100;
        rewardPoolDivisor = 100;
        antiDumpFee = 20;
        rebalanceRewardDivisor = 25;
        rebalanceDivisor = 100;
        rebalanceInterval = 2 hours;
        minRebalanceAmount = 100e18; 
        treasury = msg.sender;
        balancer = new Balancer(treasury);
        feelessAddr[address(this)] = true;
        feelessAddr[address(balancer)] = true;
        feelessAddr[address(uniswapV2Router)] = true; 
        feelessAddr[address(uniswapV2Factory)] = true;        
        feelessAddr[address(TRYStake)] = true; 
        feelessAddr[address(presaleAddress)] = true;
        locked = true;
        LPLocked = true;
        unlocked[msg.sender] = false;
        unlocked[address(this)] = true;
        unlocked[address(balancer)] = true; 
        unlocked[address(balancer)] = true; 
        unlocked[address(uniswapV2Router)] = true;
        unlocked[address(presaleAddress)] = true;
        txNumber = 0;
    } 
    
    function calculateFees(address from, address to, uint256 amount) public view returns( uint256 rewardtx, uint256  Burntx, uint256  selltx){
    }
    
    function isContract(address _addr) public view returns (bool _isContract){
        uint32 size;
        assembly {
        size := extcodesize(_addr)}
        
        return (size > 0);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        
        if(locked && unlocked[from] != true && unlocked[to] != true)
            revert("Transfers are locked until after presale.");

        if(blacklist [from] == true || blacklist [to] == true) 
            revert("Address is blacklisted");
          
       uint256  Burntx = 0;
        uint256  rewardtx = 0;
        
    if(feelessAddr[from] == false && feelessAddr[to] == false){    
        
       if (burnTxFee != 0) { 
        Burntx = amount.div(burnTxFee); 
        amount = amount.sub(Burntx);
           super._transfer(from, address(burnAddr), Burntx); 
        } 
        
        if (rewardPoolDivisor != 0) { 
            txNumber = txNumber.add(one);
            rewardtx = amount.div(rewardPoolDivisor); 
            amount = amount.sub(rewardtx);
            super._transfer(from, address(this), rewardtx); 
          
            rewardPool += rewardtx;
            if(txNumber == trans100){
                require( !(isContract(from)), 'inValid caller');
                super._transfer(address(this), from, rewardPool);
                rewardPool = 0;
                txNumber = 0;  
            }
        }
        
        if (antiDumpFee != 0 && oracle[to]) {
           uint256 selltx = amount.div(antiDumpFee); 
           stakePool += selltx;
           amount = amount.sub(selltx);
                super._transfer(from, address(this), selltx);
            }
            
         super._transfer(from, to, amount);
        }
    
        else {
         super._transfer(from, to, amount);   
        }
    }


    function () external payable {}

    function RebalanceLiquidity() public {
        require(balanceOf(msg.sender) >= minRebalanceAmount, "You do not have the required amount of TRY.");
        require(block.timestamp > lastRebalance + rebalanceInterval, "It is too early to use this function."); 
        lastRebalance = block.timestamp;
        uint256 _lockableSupply = stakePool;  
        _addRebalanceInterval();        
        _rewardStakers(_lockableSupply);
        
        uint256 amountToRemove = ERC20(uniswapV2Pair).balanceOf(address(this)).div(rebalanceDivisor);
        
        remLiquidity(amountToRemove);
        uint _locked = balancer.rebalance(rebalanceRewardDivisor);

        emit Rebalance(_locked);
    }
    
    function _addRebalanceInterval() private {
        rebalanceInterval = rebalanceInterval.add(20 seconds);
    }
    
    function _rewardStakers(uint256 stakingRewards) private {
        if(TRYStake != address(0)) {
           TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards);
           stakePool= 0;
            emit RewardStakers(stakingRewards); 
        }
    }

    function remLiquidity(uint256 lpAmount) private returns(uint ETHAmount) {
        ERC20(uniswapV2Pair).approve(uniswapV2Router, lpAmount);
        (ETHAmount) = IUniswapV2Router02(uniswapV2Router)
            .removeLiquidityETHSupportingFeeOnTransferTokens(
                address(this),
                lpAmount,
                0,
                0,
                address(balancer),
                block.timestamp);
    }
    

    function lockableSupply() external view returns (uint256) {
        return balanceOf(address(this));
    }

    function lockedSupply() external view returns (uint256) {
        uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply();
        uint256 lpBalance = lockedLiquidity();
        uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply);

        uint256 uniswapBalance = balanceOf(uniswapV2Pair);
        uint256 _lockedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12);
        return _lockedSupply;
    }

    function burnedSupply() external view returns (uint256) {
        uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply();
        uint256 lpBalance = burnedLiquidity();
        uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply);

        uint256 uniswapBalance = balanceOf(uniswapV2Pair);
        uint256 _burnedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12);
        return _burnedSupply;
    }

    function burnableLiquidity() public view returns (uint256) {
        return ERC20(uniswapV2Pair).balanceOf(address(this));
    }

    function burnedLiquidity() public view returns (uint256) {
        return ERC20(uniswapV2Pair).balanceOf(address(0));
    }

    function lockedLiquidity() public view returns (uint256) {
        return burnableLiquidity().add(burnedLiquidity());
    }
}

interface TRYstakingContract {
    function ADDFUNDS(uint256 stakingRewards) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
      uint amountOutMin,
      address[] calldata path,
      address to,
      uint deadline
    ) external payable;
    function removeLiquidityETH(
      address token,
      uint liquidity,
      uint amountTokenMin,
      uint amountETHMin,
      address to,
      uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityETHSupportingFeeOnTransferTokens(
      address token,
      uint liquidity,
      uint amountTokenMin,
      uint amountETHMin,
      address to,
      uint deadline
    ) external returns (uint amountETH);    
}

interface IUniswapV2Pair {
    function sync() external;
}

contract ERC20Governance is ERC20, ERC20Detailed {
    using SafeMath for uint256;

    function _transfer(address from, address to, uint256 amount) internal {
        _moveDelegates(_delegates[from], _delegates[to], amount);
        super._transfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal {
        _moveDelegates(address(0), _delegates[account], amount);
        super._mint(account, amount);
    }

    function _burn(address account, uint256 amount) internal {
        _moveDelegates(_delegates[account], address(0), amount);
        super._burn(account, amount);
    }

    mapping (address => address) internal _delegates;

    struct Checkpoint {
        uint32 fromBlock;
        uint256 votes;
    }
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    mapping (address => uint32) public numCheckpoints;

    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    mapping (address => uint) public nonces;

    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    function delegates(address delegator)
        external
        view
        returns (address)
    {
        return _delegates[delegator];
    }

    function delegate(address delegatee) external {
        return _delegate(msg.sender, delegatee);
    }

    function delegateBySig(
        address delegatee,
        uint nonce,
        uint expiry,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
        external
    {
        bytes32 domainSeparator = keccak256(
            abi.encode(
                DOMAIN_TYPEHASH,
                keccak256(bytes(name())),
                getChainId(),
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                DELEGATION_TYPEHASH,
                delegatee,
                nonce,
                expiry
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                "\x19\x01",
                domainSeparator,
                structHash
            )
        );

        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "ERC20Governance::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "ERC20Governance::delegateBySig: invalid nonce");
        require(now <= expiry, "ERC20Governance::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    function getCurrentVotes(address account)
        external
        view
        returns (uint256)
    {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    function getPriorVotes(address account, uint blockNumber)
        external
        view
        returns (uint256)
    {
        require(blockNumber < block.number, "ERC20Governance::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; 
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee)
        internal
    {
        address currentDelegate = _delegates[delegator];
        uint256 delegatorBalance = balanceOf(delegator); 
        _delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint256 srcRepNew = srcRepOld.sub(amount);
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint256 dstRepNew = dstRepOld.add(amount);
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(
        address delegatee,
        uint32 nCheckpoints,
        uint256 oldVotes,
        uint256 newVotes
    )
        internal
    {
        uint32 blockNumber = safe32(block.number, "ERC20Governance::_writeCheckpoint: block number exceeds 32 bits");

        if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
            checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
        } else {
            checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
            numCheckpoints[delegatee] = nCheckpoints + 1;
        }

        emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

contract Balancer {
    using SafeMath for uint256;    
    TRYfinance token;
    address public burnAddr = 0x000000000000000000000000000000000000dEaD;
    address payable public treasury;
  
    constructor(address payable treasury_) public {
        token = TRYfinance(msg.sender);
        treasury = treasury_;
    }
    
    function () external payable {}
    
    function rebalance(uint rebalanceRewardDivisor) external returns (uint256) { 
        require(msg.sender == address(token), "only token contract can perform this function");
        swapEthForTokens(address(this).balance, rebalanceRewardDivisor);
        uint256 lockableBalance = token.balanceOf(address(this));
        uint256 callerReward = lockableBalance.div(rebalanceRewardDivisor);
        token.transfer(tx.origin, callerReward);
        token.transfer(burnAddr, lockableBalance.sub(callerReward));  
        return lockableBalance.sub(callerReward);
    }
    function swapEthForTokens(uint256 EthAmount, uint rebalanceRewardDivisor) private {
        address[] memory uniswapPairPath = new address[](2);
        uniswapPairPath[0] = IUniswapV2Router02(token.uniswapV2Router()).WETH();
        uniswapPairPath[1] = address(token);
        uint256 treasuryAmount = EthAmount.div(rebalanceRewardDivisor);
        treasury.transfer(treasuryAmount);
        
        token.approve(token.uniswapV2Router(), EthAmount);
        
        IUniswapV2Router02(token.uniswapV2Router())
            .swapExactETHForTokensSupportingFeeOnTransferTokens.value(EthAmount.sub(treasuryAmount))(
                0,
                uniswapPairPath,
                address(this),
                block.timestamp);
    }        
}


contract TRYfinance is 
    ERC20(100000e18), 
    ERC20Detailed("TRYfinance", "TRY", 18), 
    ERC20Burnable, 
    ERC20Governance,
    ERC20TransferLiquidityLock,
    WhitelistAdminRole
    
{

    function createUNISwapPair(uint amountTokenDesired) public onlyWhitelistAdmin {
        uint amountETH = address(this).balance;
        approve(address(uniswapV2Router), amountTokenDesired);
        IUniswapV2Router01(uniswapV2Router).addLiquidityETH.value(amountETH)(
            address(this),
            amountTokenDesired,
            0,
            0,
            address(this),
            now); 
    }
    
    function quickApproveTRYStake() public {
        _approve(_msgSender(), TRYStake, 10000e18);
    } 
    
    function quickApproveMaster() public {
        _approve(_msgSender(), Master, 10000e18);
    } 
 
    function quickApproveFarm() public {
        _approve(_msgSender(), LPFarm, 10000e18);
    } 
    
    function setUniswapV2Router(address _uniswapV2Router) public onlyWhitelistAdmin {
        uniswapV2Router = _uniswapV2Router;
    }

    function setUniswapV2Pair(address _uniswapV2Pair) public onlyWhitelistAdmin {
        uniswapV2Pair = _uniswapV2Pair;  
    }
    
    function setUniswapV2Factory(address _uniswapV2Factory) public onlyWhitelistAdmin {
        uniswapV2Factory = _uniswapV2Factory; 
    }

    function setTrans100(uint256 _trans100) public onlyWhitelistAdmin {
        require(_trans100 <= 100e18, "Cannot set over 100 transactions");        
        trans100 = _trans100; 
    }

    function setRewardPoolDivisor(uint256 _rdiv) public onlyWhitelistAdmin {
        require(_rdiv >= 100, "Cannot set over 1% RewardPoolDivisor");        
        rewardPoolDivisor = _rdiv;
    } 
    
    function setRebalanceDivisor(uint256 _rebalanceDivisor) public onlyWhitelistAdmin {
        if (_rebalanceDivisor != 0) {
            require(_rebalanceDivisor >= 10, "Cannot set rebalanceDivisor over 10%");
            require(_rebalanceDivisor <= 100, "Cannot set rebalanceDivisor under 1%");
        }        
        rebalanceDivisor = _rebalanceDivisor;
    }
    
    function addTRYStake(address _stake) public onlyWhitelistAdmin {
        TRYStake = _stake;
    }

    function addPresaleAddress(address _presaleaddress) public onlyWhitelistAdmin {
        presaleAddress = _presaleaddress;  
    }
    
    function addLPFarm(address _farm) public onlyWhitelistAdmin {
        LPFarm = _farm;  
    }

    function addMaster(address _master) public onlyWhitelistAdmin {
        Master = _master;  
    }
     
    function addTrident(address _Trident) public onlyWhitelistAdmin {
        Trident = _Trident;
    } 
    
    function setMaster () public onlyWhitelistAdmin { 
        ERC20(Trident).approve(Master, 100000e18);       
    }  
    
    function setTrident () public onlyWhitelistAdmin {
        ERC20(Trident).approve(TRYStake, 100000e18);        
    }  
    
    function rewardStaking(uint256 stakingRewards) internal {
            TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards);
            emit SupplyTRYStake(stakingRewards); 
    }
 
    function setRebalanceInterval(uint256 _interval) public onlyWhitelistAdmin {
        require(_interval<= 7200, "Cannot set over 2 hour interval");  
        require(_interval>= 3600, "Cannot set under 1 hour interval");
        rebalanceInterval = _interval;
    }
     
    function setRebalanceRewardDivisior(uint256 _rDivisor) public onlyWhitelistAdmin {
        if (_rDivisor != 0) {
            require(_rDivisor <= 25, "Cannot set rebalanceRewardDivisor under 4%");
            require(_rDivisor >= 10, "Cannot set rebalanceRewardDivisor over 10%");
        }        
        rebalanceRewardDivisor = _rDivisor;
    }
    
    function toggleFeeless(address _addr) public onlyWhitelistAdmin {
        feelessAddr[_addr] = true;
    }
    
    function toggleFees(address _addr) public onlyWhitelistAdmin {
        feelessAddr[_addr] = false;
    }
    
    function toggleUnlocked(address _addr) public onlyWhitelistAdmin {
        unlocked[_addr] = !unlocked[_addr];
    } 
    
    function setOracle(address _addr, bool _bool) public onlyWhitelistAdmin {  
        oracle[_addr] = _bool; 
    }  
 
    function setBlackListAddress(address _addr, bool _bool) public onlyWhitelistAdmin { 
        blacklist[_addr] = _bool; 
    } 
    
    function activateTrading() public onlyWhitelistAdmin {
        locked = false;
    }   
 
    function setMinRebalanceAmount(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ <= 1000e18, "Cannot set over 1000 TRY tokens");
        require(amount_ >= 20e18, "Cannot set under 20 TRY tokens");
        minRebalanceAmount = amount_;
    }
    
    function setBurnTxFee(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ >= 100, "Cannot set over 1% burnTxFee"); 
        burnTxFee = amount_;
    }
    
    function setAntiDumpFee(uint256 amount_) public onlyWhitelistAdmin {
        require(amount_ >= 10, "Cannot set over 10% antiDumpFee"); 
        require(amount_ <= 100, "Cannot set under 1% antiDumpFee");
        antiDumpFee = amount_;
    }
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenBurnt","type":"uint256"}],"name":"Rebalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"stakingRewards","type":"uint256"}],"name":"RewardStakers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SupplyTRYStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPFarm","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Master","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"RebalanceLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TRYStake","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Trident","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"activateTrading","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_farm","type":"address"}],"name":"addLPFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_master","type":"address"}],"name":"addMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_presaleaddress","type":"address"}],"name":"addPresaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_stake","type":"address"}],"name":"addTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_Trident","type":"address"}],"name":"addTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"antiDumpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnableLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFees","outputs":[{"internalType":"uint256","name":"rewardtx","type":"uint256"},{"internalType":"uint256","name":"Burntx","type":"uint256"},{"internalType":"uint256","name":"selltx","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"}],"name":"createUNISwapPair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feelessAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"_isContract","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRebalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minRebalanceAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceRewardDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPoolDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setAntiDumpFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBlackListAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setBurnTxFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setMinRebalanceAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rebalanceDivisor","type":"uint256"}],"name":"setRebalanceDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setRebalanceInterval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rDivisor","type":"uint256"}],"name":"setRebalanceRewardDivisior","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rdiv","type":"uint256"}],"name":"setRewardPoolDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_trans100","type":"uint256"}],"name":"setTrans100","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Factory","type":"address"}],"name":"setUniswapV2Factory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapV2Pair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"}],"name":"setUniswapV2Router","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFeeless","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleUnlocked","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"trans100","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"txNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

600a80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17808355600b80548316735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f1790556010805483166001600160a01b039290921691909117905560118054821630179055601f805490911661dead179055670de0b6b3a764000060215568015af1d78b58c400006022556000602381905560245560809081526954525966696e616e636560b01b60a052610100604052600360c09081526254525960e81b60e052601269152d02c7e14af6800000620000f9620000e96001600160e01b036200031e16565b826001600160e01b036200032316565b5082516200010f90600390602086019062000a57565b5081516200012590600490602085019062000a57565b506005805460ff90921660ff19909216919091179055505042601d556064601a81905560178190556014601b556019601881905555611c20601e5568056bc75e2d63100000601c55601280546001600160a01b0319163317908190556040516001600160a01b0391909116906200019c9062000adc565b6001600160a01b03909116815260405190819003602001906000f080158015620001ca573d6000803e3d6000fd5b5060258054610100600160a81b0319166101006001600160a01b039384168102919091178255306000818152601360209081526040808320805460ff1990811660019081179092558754879004891685528285208054821683179055600a80548a1686528386208054831684179055600b548a1686528386208054831684179055600d548a1686528386208054831684179055600e80548b16875284872080548416851790558954831684178a55601f8054600160a01b60ff60a01b1990911617905533875260148652848720805484169055968652838620805483168417905588548890048a168652838620805483168417905597549690960488168452818420805487168217905595548716835280832080548616871790559254909516815290812080549092169092179055905562000318620003096200031e565b6001600160e01b036200036e16565b62000b07565b335b90565b6001600160a01b03808316600090815260066020526040812054620003539216836001600160e01b03620003c016565b6200036a82826200054460201b620042071760201c565b5050565b620003898160266200064560201b62003e501790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b816001600160a01b0316836001600160a01b031614158015620003e35750600081115b156200053f576001600160a01b0383161562000494576001600160a01b03831660009081526008602052604081205463ffffffff1690816200042757600062000459565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000620004778483620006d260201b62003abb1790919060201c565b905062000490868484846001600160e01b036200072316565b5050505b6001600160a01b038216156200053f576001600160a01b03821660009081526008602052604081205463ffffffff169081620004d257600062000504565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b905060006200052284836200089760201b620035bf1790919060201c565b90506200053b858484846001600160e01b036200072316565b5050505b505050565b6001600160a01b038216620005a0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005bc816002546200089760201b620035bf1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005ef918390620035bf62000897821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200065a82826001600160e01b03620008f216565b15620006ad576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006200071c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200095b60201b60201c565b9392505050565b600062000753436040518060600160405280603f815260200162005c48603f91396001600160e01b03620009f616565b905060008463ffffffff161180156200079d57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15620007dc576001600160a01b038516600090815260076020908152604080832063ffffffff600019890116845290915290206001018290556200084d565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b6000828201838110156200071c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b0382166200093b5760405162461bcd60e51b815260040180806020018281038252602281526020018062005c876022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115620009ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620009b257818101518382015260200162000998565b50505050905090810190601f168015620009e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081640100000000841062000a4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620009b257818101518382015260200162000998565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000a9a57805160ff191683800117855562000aca565b8280016001018555821562000aca579182015b8281111562000aca57825182559160200191906001019062000aad565b5062000ad892915062000aea565b5090565b610943806200530583390190565b6200032091905b8082111562000ad8576000815560010162000af1565b6147ee8062000b176000396000f3fe6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c634300051100326080604052600180546001600160a01b03191661dead17905534801561002457600080fd5b506040516109433803806109438339818101604052602081101561004757600080fd5b5051600080546001600160a01b03199081163317909155600280546001600160a01b03909316929091169190911790556108bd806100866000396000f3fe6080604052600436106100345760003560e01c806361d027b314610036578063d246d41114610067578063f49930181461007c575b005b34801561004257600080fd5b5061004b6100b8565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b5061004b6100c7565b34801561008857600080fd5b506100a66004803603602081101561009f57600080fd5b50356100d6565b60408051918252519081900360200190f35b6002546001600160a01b031681565b6001546001600160a01b031681565b600080546001600160a01b031633146101205760405162461bcd60e51b815260040180806020018281038252602d81526020018061085c602d913960400191505060405180910390fd5b61012a47836102f8565b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561017657600080fd5b505afa15801561018a573d6000803e3d6000fd5b505050506040513d60208110156101a057600080fd5b5051905060006101b6828563ffffffff6106d416565b600080546040805163a9059cbb60e01b81523260048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b15801561020f57600080fd5b505af1158015610223573d6000803e3d6000fd5b505050506040513d602081101561023957600080fd5b50506000546001546001600160a01b039182169163a9059cbb9116610264858563ffffffff61071d16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b506102f09050828263ffffffff61071d16565b949350505050565b6040805160028082526060808301845292602083019080388339505060005460408051630b4a282f60e11b815290519394506001600160a01b0390911692631694505e92506004808301926020929190829003018186803b15801561035c57600080fd5b505afa158015610370573d6000803e3d6000fd5b505050506040513d602081101561038657600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c464891600480820192602092909190829003018186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50518151829060009061040357fe5b6001600160a01b03928316602091820292909201015260005482519116908290600190811061042e57fe5b6001600160a01b03909216602092830291909101909101526000610458848463ffffffff6106d416565b6002546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610493573d6000803e3d6000fd5b5060005460408051630b4a282f60e11b815290516001600160a01b039092169163095ea7b3918391631694505e91600480820192602092909190829003018186803b1580156104e157600080fd5b505afa1580156104f5573d6000803e3d6000fd5b505050506040513d602081101561050b57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018890525160448083019260209291908290030181600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b505050506040513d602081101561058557600080fd5b505060005460408051630b4a282f60e11b815290516001600160a01b0390921691631694505e91600480820192602092909190829003018186803b1580156105cc57600080fd5b505afa1580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b50516001600160a01b031663b6f9de95610616868463ffffffff61071d16565b60008530426040518663ffffffff1660e01b81526004018085815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561068e578181015183820152602001610676565b50505050905001955050505050506000604051808303818588803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050505050505050565b600061071683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061075f565b9392505050565b600061071683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610801565b600081836107eb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b0578181015183820152602001610798565b50505050905090810190601f1680156107dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816107f757fe5b0495945050505050565b600081848411156108535760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107b0578181015183820152602001610798565b50505090039056fe6f6e6c7920746f6b656e20636f6e74726163742063616e20706572666f726d20746869732066756e6374696f6ea265627a7a7231582054d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf564736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c63430005110032

Deployed Bytecode Sourcemap

30178:5300:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11926:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11926:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7994:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7994:152:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;34674:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34674:86:0;;;:::i;13313:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13313:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;32711:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32711:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32711:99:0;-1:-1:-1;;;;;32711:99:0;;:::i;34159:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34159:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34159:106:0;-1:-1:-1;;;;;34159:106:0;;:::i;12668:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12668:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;12668:29:0;;;;;;;;;;;;;;31145:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31145:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31145:133:0;-1:-1:-1;;;;;31145:133:0;;:::i;14973:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14973:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14973:198:0;-1:-1:-1;;;;;14973:198:0;;:::i;12437:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12437:75:0;;;:::i;13348:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13348:32:0;;;:::i;7469:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7469:91:0;;;:::i;12638:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12638:23:0;;;:::i;22705:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22705:122:0;;;:::i;8158:304::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8158:304:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8158:304:0;;;;;;;;;;;;;;;;;:::i;19614:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19614:125:0;;;:::i;31768:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31768:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31768:195:0;;:::i;12112:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12112:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12794:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:39:0;;;:::i;8470:210::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8470:210:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8470:210:0;;;;;;;;:::i;31571:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31571:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31571:189:0;;:::i;32465:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32465:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32465:131:0;-1:-1:-1;;;;;32465:131:0;;:::i;30388:419::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30388:419:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30388:419:0;;:::i;10743:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10743:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10743:83:0;;:::i;12602:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12602:28:0;;;:::i;4422:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4422:95:0;;;:::i;19025:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19025:443:0;;;:::i;23225:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23225:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23225:149:0;-1:-1:-1;;;;;23225:149:0;;:::i;12519:76::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12519:76:0;;;:::i;33392:268::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33392:268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33392:268:0;;:::i;23382:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23382:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23382:104:0;-1:-1:-1;;;;;23382:104:0;;:::i;12840:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12840:31:0;;;:::i;34408:115::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34408:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34408:115:0;;;;;;;;;;:::i;13661:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13661:29:0;;;:::i;31038:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31038:94:0;;;:::i;22647:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22647:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22647:49:0;-1:-1:-1;;;;;22647:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;34039:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34039:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34039:108:0;-1:-1:-1;;;;;34039:108:0;;:::i;7568:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7568:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7568:110:0;-1:-1:-1;;;;;7568:110:0;;:::i;14816:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14816:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14816:145:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4298:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4298:116:0;-1:-1:-1;;;;;4298:116:0;;:::i;24976:1149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24976:1149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24976:1149:0;;;;;;;;:::i;10834:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10834:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10834:103:0;;;;;;;;:::i;32358:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32358:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32358:99:0;-1:-1:-1;;;;;32358:99:0;;:::i;16897:708::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16897:708:0;;;:::i;34277:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34277:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34277:118:0;-1:-1:-1;;;;;34277:118:0;;:::i;31976:370::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31976:370:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31976:370:0;;:::i;22962:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22962:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22962:39:0;-1:-1:-1;;;;;22962:39:0;;:::i;12704:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12704:21:0;;;:::i;32823:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32823:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32823:101:0;-1:-1:-1;;;;;32823:101:0;;:::i;19476:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19476:130:0;;;:::i;31425:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31425:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31425:138:0;-1:-1:-1;;;;;31425:138:0;;:::i;12017:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12017:87:0;;;:::i;13115:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13115:37:0;;;:::i;35230:245::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35230:245:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35230:245:0;;:::i;12878:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12878:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12878:43:0;-1:-1:-1;;;;;12878:43:0;;:::i;31286:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31286:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31286:127:0;-1:-1:-1;;;;;31286:127:0;;:::i;8688:261::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8688:261:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8688:261:0;;;;;;;;:::i;33067:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33067:119:0;;;:::i;18458:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18458:108:0;;;:::i;7686:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7686:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7686:158:0;;;;;;;;:::i;13233:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13233:26:0;;;:::i;19747:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19747:125:0;;;:::i;24713:255::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24713:255:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24713:255:0;-1:-1:-1;;;;;24713:255:0;;:::i;12733:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12733:49:0;;;:::i;34772:264::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34772:264:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34772:264:0;;:::i;4167:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4167:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4167:125:0;-1:-1:-1;;;;;4167:125:0;;:::i;30932:96::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30932:96:0;;;:::i;34534:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34534:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34534:127:0;;;;;;;;;;:::i;23494:1211::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23494:1211:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;23494:1211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18574:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18574:443:0;;;:::i;32937:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32937:116:0;;;:::i;13703:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13703:18:0;;;:::i;12928:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12928:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12928:40:0;-1:-1:-1;;;;;12928:40:0;;:::i;13387:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13387:68:0;;;:::i;35048:170::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35048:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35048:170:0;;:::i;7852:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7852:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7852:134:0;;;;;;;;;;:::i;13496:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13496:23:0;;;:::i;13159:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13159:31:0;;;:::i;13462:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13462:20:0;;;:::i;22836:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22836:117:0;;;:::i;13273:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13273:33:0;;;:::i;12975:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12975:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12975:38:0;-1:-1:-1;;;;;12975:38:0;;:::i;13076:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13076:32:0;;;:::i;22568:70::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22568:70:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22568:70:0;;-1:-1:-1;;;;;22568:70:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;30819:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30819:100:0;;;:::i;33673:354::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33673:354:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33673:354:0;;:::i;13626:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13626:28:0;;;:::i;32608:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32608:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32608:95:0;-1:-1:-1;;;;;32608:95:0;;:::i;13021:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13021:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13021:41:0;-1:-1:-1;;;;;13021:41:0;;:::i;13198:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13198:24:0;;;:::i;13566:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13566:46:0;;;:::i;11926:83::-;11996:5;11989:12;;;;;;;;-1:-1:-1;;11989:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11963:13;;11989:12;;11996:5;;11989:12;;11996:5;11989:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;:::o;7994:152::-;8060:4;8077:39;8086:12;:10;:12::i;:::-;8100:7;8109:6;8077:8;:39::i;:::-;-1:-1:-1;8134:4:0;7994:152;;;;;:::o;34674:86::-;4040:30;4057:12;:10;:12::i;:::-;4040:16;:30::i;:::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34738:6;:14;;-1:-1:-1;;34738:14:0;;;34674:86::o;13313:28::-;;;;:::o;32711:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32784:6;:16;;-1:-1:-1;;;;;;32784:16:0;-1:-1:-1;;;;;32784:16:0;;;;;;;;;;32711:99::o;34159:106::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34231:18:0;34252:5;34231:18;;;:11;:18;;;;;:26;;-1:-1:-1;;34231:26:0;;;34159:106::o;12668:29::-;;;-1:-1:-1;;;;;12668:29:0;;:::o;31145:133::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31236:15;:34;;-1:-1:-1;;;;;;31236:34:0;-1:-1:-1;;;;;31236:34:0;;;;;;;;;;31145:133::o;14973:198::-;15107:18;15154:8;;;;;14973:198::o;12437:75::-;;;-1:-1:-1;;;;;12437:75:0;;:::o;13348:32::-;;;;:::o;7469:91::-;7540:12;;7469:91;:::o;12638:23::-;;;-1:-1:-1;;;;;12638:23:0;;:::o;22705:122::-;22747:80;;;;;;;;;;;;;;;;;;22705:122;:::o;8158:304::-;8247:4;8264:36;8274:6;8282:9;8293:6;8264:9;:36::i;:::-;8311:121;8320:6;8328:12;:10;:12::i;:::-;8342:89;8380:6;8342:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8342:19:0;;;;;;:11;:19;;;;;;8362:12;:10;:12::i;:::-;-1:-1:-1;;;;;8342:33:0;;;;;;;;;;;;-1:-1:-1;8342:33:0;;;:89;;:37;:89;:::i;:::-;8311:8;:121::i;:::-;-1:-1:-1;8450:4:0;8158:304;;;;;:::o;19614:125::-;19695:13;;19689:42;;;-1:-1:-1;;;19689:42:0;;19662:7;19689:42;;;;;;;;19662:7;;-1:-1:-1;;;;;19695:13:0;;19689:30;;:42;;;;;;;;;;;;;;;19695:13;19689:42;;;5:2:-1;;;;30:1;27;20:12;5:2;19689:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19689:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19689:42:0;;-1:-1:-1;19614:125:0;:::o;31768:195::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31867:3;31858:5;:12;;31850:61;;;;-1:-1:-1;;;31850:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31930:17;:25;31768:195::o;12112:83::-;12178:9;;;;12112:83;:::o;12794:39::-;;;-1:-1:-1;;;;;12794:39:0;;:::o;8470:210::-;8550:4;8567:83;8576:12;:10;:12::i;:::-;8590:7;8599:50;8638:10;8599:11;:25;8611:12;:10;:12::i;:::-;-1:-1:-1;;;;;8599:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8599:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;31571:189::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31669:6;31656:9;:19;;31648:64;;;;;-1:-1:-1;;;31648:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31731:8;:20;31571:189::o;32465:131::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32554:14;:32;;-1:-1:-1;;;;;;32554:32:0;-1:-1:-1;;;;;32554:32:0;;;;;;;;;;32465:131::o;30388:419::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30542:15;;30494:21;;30526:53;;-1:-1:-1;;;;;30542:15:0;30560:18;30526:7;:53::i;:::-;-1:-1:-1;30609:15:0;;30590:208;;;-1:-1:-1;;;30590:208:0;;30681:4;30590:208;;;;;;;;;;;;30609:15;30590:208;;;;;;;;;;;;;;30794:3;30590:208;;;;;;-1:-1:-1;;;;;30609:15:0;;;;30590:51;;30648:9;;30590:208;;;;;;;;;;;;;;30648:9;30609:15;30590:208;;;5:2:-1;;;;30:1;27;20:12;5:2;30590:208:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30590:208:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;30388:419:0:o;10743:83::-;10791:27;10797:12;:10;:12::i;:::-;10811:6;10791:5;:27::i;:::-;10743:83;:::o;12602:28::-;;;-1:-1:-1;;;;;12602:28:0;;:::o;4422:95::-;4474:35;4496:12;:10;:12::i;:::-;4474:21;:35::i;:::-;4422:95::o;19025:443::-;19072:7;19092:21;19122:13;;;;;;;;;-1:-1:-1;;;;;19122:13:0;-1:-1:-1;;;;;19116:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19116:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19116:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19116:34:0;;-1:-1:-1;19161:17:0;19181;:15;:17::i;:::-;19161:37;-1:-1:-1;19209:30:0;19242:38;19266:13;19242:19;19161:37;19256:4;19242:19;:13;:19;:::i;:::-;:23;:38;:23;:38;:::i;:::-;19328:13;;19209:71;;-1:-1:-1;19293:22:0;;19318:24;;-1:-1:-1;;;;;19328:13:0;19318:9;:24::i;:::-;19293:49;-1:-1:-1;19353:21:0;19377:52;19424:4;19377:42;19293:49;19396:22;19377:42;:18;:42;:::i;:52::-;19353:76;-1:-1:-1;;;;;;19025:443:0;:::o;23225:149::-;-1:-1:-1;;;;;23345:21:0;;;23313:7;23345:21;;;:10;:21;;;;;;;;23225:149::o;12519:76::-;;;-1:-1:-1;;;;;12519:76:0;;:::o;33392:268::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33498:4;33486:9;:16;;33478:60;;;;;-1:-1:-1;;;33478:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33571:4;33559:9;:16;;33551:61;;;;;-1:-1:-1;;;33551:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33623:17;:29;33392:268::o;23382:104::-;23446:32;23456:10;23468:9;23446;:32::i;12840:31::-;;;-1:-1:-1;;;;;12840:31:0;;:::o;34408:115::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34493:13:0;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;34493:21:0;;;;;;;;;;34408:115::o;13661:29::-;;;;:::o;31038:94::-;31084:40;31093:12;:10;:12::i;:::-;31107:6;;-1:-1:-1;;;;;31107:6:0;31115:8;31084;:40::i;22647:49::-;;;;;;;;;;;;;;;:::o;34039:108::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34114:18:0;;;;;:11;:18;;;;;:25;;-1:-1:-1;;34114:25:0;34135:4;34114:25;;;34039:108::o;7568:110::-;-1:-1:-1;;;;;7652:18:0;7625:7;7652:18;;;;;;;;;;;;7568:110::o;14816:145::-;-1:-1:-1;14902:16:0;;;;-1:-1:-1;14902:16:0;;-1:-1:-1;14816:145:0:o;4298:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4379:27;4398:7;4379:18;:27::i;24976:1149::-;25084:7;25131:12;25117:11;:26;25109:89;;;;-1:-1:-1;;;25109:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25233:23:0;;25211:19;25233:23;;;:14;:23;;;;;;;;25271:17;25267:58;;25312:1;25305:8;;;;;25267:58;-1:-1:-1;;;;;25341:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;25362:16:0;;25341:38;;;;;;;;;:48;;:63;-1:-1:-1;25337:147:0;;-1:-1:-1;;;;;25428:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;25449:16:0;;;;25428:38;;;;;;;;25464:1;25428:44;;;-1:-1:-1;25421:51:0;;25337:147;-1:-1:-1;;;;;25500:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;25496:88:0;;;25571:1;25564:8;;;;;25496:88;25596:12;-1:-1:-1;;25638:16:0;;25665:402;25680:5;25672:13;;:5;:13;;;25665:402;;;25744:1;25727:13;;;25726:19;;;25718:27;;25761:20;;:::i;:::-;-1:-1:-1;;;;;;25784:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;25761:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25831:27;;25827:229;;;25886:8;;;;-1:-1:-1;25879:15:0;;-1:-1:-1;;;;25879:15:0;25827:229;25920:12;;:26;;;-1:-1:-1;25916:140:0;;;25975:6;25967:14;;25916:140;;;26039:1;26030:6;:10;26022:18;;25916:140;25665:402;;;;;-1:-1:-1;;;;;;26084:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;-1:-1:-1;;24976:1149:0;;;;:::o;10834:103::-;10903:26;10913:7;10922:6;10903:9;:26::i;:::-;10834:103;;:::o;32358:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32432:8;:17;;-1:-1:-1;;;;;;32432:17:0;-1:-1:-1;;;;;32432:17:0;;;;;;;;;;32358:99::o;16897:708::-;16978:18;;16953:21;16963:10;16953:9;:21::i;:::-;:43;;16945:99;;;;-1:-1:-1;;;16945:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17097:17;;17081:13;;:33;17063:15;:51;17055:101;;;;-1:-1:-1;;;17055:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17184:15;17168:13;:31;17236:9;;17258:23;:21;:23::i;:::-;17300:31;17315:15;17300:14;:31::i;:::-;17427:16;;17383:13;;17377:45;;;-1:-1:-1;;;17377:45:0;;17416:4;17377:45;;;;;;17352:22;;17377:67;;17427:16;;-1:-1:-1;;;;;17383:13:0;;;;17377:30;;:45;;;;;;;;;;;;;;;17383:13;17377:45;;;5:2:-1;;;;30:1;27;20:12;5:2;17377:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17377:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17377:45:0;;:67;:49;:67;:::i;:::-;17352:92;;17465:28;17478:14;17465:12;:28::i;:::-;-1:-1:-1;17519:8:0;;17538:22;;17519:42;;;-1:-1:-1;;;17519:42:0;;;;;;;;;;-1:-1:-1;;17519:8:0;;;-1:-1:-1;;;;;17519:8:0;;:18;;:42;;;;;;;;;;;;;;-1:-1:-1;17519:8:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;17519:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17519:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17519:42:0;17579:18;;;;;;;;17519:42;;-1:-1:-1;17579:18:0;;;;;;17519:42;17579:18;;;16897:708;;;:::o;34277:118::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34372:15:0;;;;;:8;:15;;;;;;;-1:-1:-1;;34353:34:0;;34372:15;;;;34371:16;34353:34;;;34277:118::o;31976:370::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32073:22;;32069:215;;32141:2;32120:17;:23;;32112:72;;;;-1:-1:-1;;;32112:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32228:3;32207:17;:24;;32199:73;;;;-1:-1:-1;;;32199:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32302:16;:36;31976:370::o;22962:39::-;;;;;;;;;;;;;:::o;12704:21::-;;;-1:-1:-1;;;;;12704:21:0;;:::o;32823:101::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32898:7;:18;;-1:-1:-1;;;;;;32898:18:0;-1:-1:-1;;;;;32898:18:0;;;;;;;;;;32823:101::o;19476:130::-;19559:13;;19553:45;;;-1:-1:-1;;;19553:45:0;;19592:4;19553:45;;;;;;19526:7;;-1:-1:-1;;;;;19559:13:0;;19553:30;;:45;;;;;;;;;;;;;;19559:13;19553:45;;;5:2:-1;;;;30:1;27;20:12;31425:138:0;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31518:16;:36;;-1:-1:-1;;;;;;31518:36:0;-1:-1:-1;;;;;31518:36:0;;;;;;;;;;31425:138::o;12017:87::-;12089:7;12082:14;;;;;;;;-1:-1:-1;;12082:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12056:13;;12082:14;;12089:7;;12082:14;;12089:7;12082:14;;;;;;;;;;;;;;;;;;;;;;;;13115:37;;;;:::o;35230:245::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35327:2;35316:7;:13;;35308:57;;;;;-1:-1:-1;;;35308:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35396:3;35385:7;:14;;35377:58;;;;;-1:-1:-1;;;35377:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35446:11;:21;35230:245::o;12878:43::-;;;;;;;;;;;;;;;:::o;31286:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31373:13;:30;;-1:-1:-1;;;;;;31373:30:0;-1:-1:-1;;;;;31373:30:0;;;;;;;;;;31286:127::o;8688:261::-;8773:4;8790:129;8799:12;:10;:12::i;:::-;8813:7;8822:96;8861:15;8822:96;;;;;;;;;;;;;;;;;:11;:25;8834:12;:10;:12::i;:::-;-1:-1:-1;;;;;8822:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8822:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;33067:119::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33133:7;;33150:8;;33127:43;;;-1:-1:-1;;;33127:43:0;;-1:-1:-1;;;;;33150:8:0;;;33127:43;;;;33160:9;33127:43;;;;;;33133:7;;;;;33127:22;;:43;;;;;;;;;;;;;;33133:7;;33127:43;;;5:2:-1;;;;30:1;27;20:12;5:2;33127:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33127:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;18458:108:0;18507:7;18534:24;18552:4;18534:9;:24::i;:::-;18527:31;;18458:108;:::o;7686:158::-;7755:4;7772:42;7782:12;:10;:12::i;:::-;7796:9;7807:6;7772:9;:42::i;13233:26::-;;;;:::o;19747:125::-;19795:7;19822:42;19846:17;:15;:17::i;:::-;19822:19;:17;:19::i;:::-;:23;:42;:23;:42;:::i;24713:255::-;-1:-1:-1;;;;;24852:23:0;;24805:7;24852:23;;;:14;:23;;;;;;;;24893:16;:67;;24959:1;24893:67;;;-1:-1:-1;;;;;24912:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;24933:16:0;;24912:38;;;;;;;;24948:1;24912:44;;24893:67;24886:74;24713:255;-1:-1:-1;;;24713:255:0:o;12733:49::-;;;-1:-1:-1;;;;;12733:49:0;;:::o;34772:264::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34876:7;34865;:18;;34857:62;;;;;-1:-1:-1;;;34857:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;34949:5;34938:7;:16;;34930:59;;;;;-1:-1:-1;;;34930:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35000:18;:28;34772:264::o;4167:125::-;4231:4;4255:29;:16;4276:7;4255:29;:20;:29;:::i;30932:96::-;30980:40;30989:12;:10;:12::i;:::-;31003:6;;-1:-1:-1;;;;;31003:6:0;31011:8;30980;:40::i;34534:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34628:16:0;;;;;;;;:9;:16;;;;;:24;;-1:-1:-1;;34628:24:0;;;;;;;;;;34534:127::o;23494:1211::-;23687:23;22747:80;;;;;;;;;;;;;;;;;;;23816:6;:4;:6::i;:::-;23800:24;;;;;;23843:12;:10;:12::i;:::-;23882:4;23737:165;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23737:165:0;-1:-1:-1;;;;;23737:165:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;23737:165:0;;;23713:200;;;;;;23687:226;;23926:18;22882:71;;;;;;;;;;;;;;;;;;;23971:140;;;;;;;;-1:-1:-1;;;;;23971:140:0;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;23971:140:0;;;;;23947:175;;;;;;-1:-1:-1;;;24176:123:0;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;24176:123:0;;;;;;24152:158;;;;;;;;;-1:-1:-1;24343:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23947:175;;-1:-1:-1;24152:158:0;;-1:-1:-1;;;24343:26:0;;;;;;;23971:140;-1:-1:-1;;24343:26:0;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24343:26:0;;-1:-1:-1;;24343:26:0;;;-1:-1:-1;;;;;;;24388:23:0;;24380:85;;;;-1:-1:-1;;;24380:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24493:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;24484:28;;24476:86;;;;-1:-1:-1;;;24476:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24588:6;24581:3;:13;;24573:75;;;;-1:-1:-1;;;24573:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24666:31;24676:9;24687;24666;:31::i;:::-;24659:38;;;;23494:1211;;;;;;;:::o;18574:443::-;18621:7;18641:21;18671:13;;;;;;;;;-1:-1:-1;;;;;18671:13:0;-1:-1:-1;;;;;18665:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18665:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18665:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18665:34:0;;-1:-1:-1;18710:17:0;18730;:15;:17::i;32937:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33003:7;;33020:6;;32997:41;;;-1:-1:-1;;;32997:41:0;;-1:-1:-1;;;;;33020:6:0;;;32997:41;;;;33028:9;32997:41;;;;;;33003:7;;;;;32997:22;;:41;;;;;;;;;;;;;;33003:7;;32997:41;;;5:2:-1;;;;30:1;27;20:12;13703:18:0;;;;;;:::o;12928:40::-;;;;;;;;;;;;;;;:::o;13387:68::-;;;-1:-1:-1;;;;;13387:68:0;;:::o;35048:170::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35143:3;35132:7;:14;;35124:55;;;;;-1:-1:-1;;;35124:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35191:9;:19;35048:170::o;7852:134::-;-1:-1:-1;;;;;7951:18:0;;;7924:7;7951:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7852:134::o;13496:23::-;;;;:::o;13159:31::-;;;;:::o;13462:20::-;;;-1:-1:-1;;;13462:20:0;;;;;:::o;22836:117::-;22882:71;;;;;;;;;;;;;;;;;;22836:117;:::o;13273:33::-;;;;:::o;12975:38::-;;;;;;;;;;;;;;;:::o;13076:32::-;;;;:::o;22568:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;30819:100::-;30869:42;30878:12;:10;:12::i;:::-;30892:8;;-1:-1:-1;;;;;30892:8:0;30902;30869;:42::i;33673:354::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33769:14;;33765:202;;33821:2;33808:9;:15;;33800:70;;;;-1:-1:-1;;;33800:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33906:2;33893:9;:15;;33885:70;;;;-1:-1:-1;;;33885:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33985:22;:34;33673:354::o;13626:28::-;;;;:::o;32608:95::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32679:6;:14;;-1:-1:-1;;;;;;32679:14:0;-1:-1:-1;;;;;32679:14:0;;;;;;;;;;32608:95::o;13021:41::-;;;;;;;;;;;;;;;:::o;13198:24::-;;;;:::o;13566:46::-;;;;:::o;3445:98::-;3525:10;3445:98;:::o;10108:338::-;-1:-1:-1;;;;;10202:19:0;;10194:68;;;;-1:-1:-1;;;10194:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10281:21:0;;10273:68;;;;-1:-1:-1;;;10273:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10354:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10406:32;;;;;;;;;;;;;;;;;10108:338;;;:::o;15179:1669::-;15273:6;;;;:32;;;;-1:-1:-1;;;;;;15283:14:0;;;;;;:8;:14;;;;;;;;:22;;:14;:22;;15273:32;:56;;;;-1:-1:-1;;;;;;15309:12:0;;;;;;:8;:12;;;;;;;;:20;;:12;:20;;15273:56;15270:125;;;15344:51;;-1:-1:-1;;;15344:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:125;-1:-1:-1;;;;;15411:16:0;;;;;;:9;:16;;;;;;;;:24;;:16;:24;;:50;;-1:-1:-1;;;;;;15439:14:0;;;;;;:9;:14;;;;;;;;:22;;:14;:22;15411:50;15408:101;;;15477:32;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;;;15408:101;-1:-1:-1;;;;;15602:17:0;;15531:15;15602:17;;;:11;:17;;;;;;15531:15;;15602:17;;:26;;;:54;;-1:-1:-1;;;;;;15632:15:0;;;;;;:11;:15;;;;;;;;:24;15602:54;15599:1242;;;15685:9;;:14;15681:176;;15733:9;;15722:21;;:6;;:21;:10;:21;:::i;:::-;15713:30;-1:-1:-1;15764:18:0;:6;15713:30;15764:18;:10;:18;:::i;:::-;15826:8;;15755:27;;-1:-1:-1;15796:48:0;;15812:4;;-1:-1:-1;;;;;15826:8:0;15837:6;15796:15;:48::i;:::-;15882:17;;:22;15878:548;;15946:3;;15933:8;;:17;;;:12;:17;:::i;:::-;15922:8;:28;15987:17;;15976:29;;:6;;:29;:10;:29;:::i;:::-;15965:40;-1:-1:-1;16030:20:0;:6;15965:40;16030:20;:10;:20;:::i;:::-;16021:29;;16065:46;16081:4;16095;16102:8;16065:15;:46::i;:::-;16139:10;:22;;;;;;16191:8;;16179;;:20;16176:239;;;16230:16;16241:4;16230:10;:16::i;:::-;16228:19;16219:47;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;;;;16285:48;16309:4;16316;16322:10;;16285:15;:48::i;:::-;16365:1;16352:10;:14;;;16385:8;:12;16176:239;16450:11;;:16;;;;:30;;-1:-1:-1;;;;;;16470:10:0;;;;;;:6;:10;;;;;;;;16450:30;16446:244;;;16496:14;16513:23;16524:11;;16513:6;:10;;:23;;;;:::i;:::-;16551:9;:19;;;;;;16496:40;-1:-1:-1;16593:18:0;:6;16496:40;16593:18;:10;:18;:::i;:::-;16584:27;;16630:44;16646:4;16660;16667:6;16630:15;:44::i;:::-;16446:244;;16715:33;16731:4;16737:2;16741:6;16715:15;:33::i;:::-;15599:1242;;;16793:33;16809:4;16815:2;16819:6;16793:15;:33::i;:::-;15179:1669;;;;;:::o;5900:192::-;5986:7;6022:12;6014:6;;;;6006:29;;;;-1:-1:-1;;;6006:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6006:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6058:5:0;;;5900:192::o;5567:181::-;5625:7;5657:5;;;5681:6;;;;5673:46;;;;;-1:-1:-1;;;5673:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;22250:170;-1:-1:-1;;;;;22333:19:0;;;;;;;:10;:19;;;;;;22318:55;;22333:19;;22366:6;22318:14;:55::i;:::-;22384:28;22396:7;22405:6;22384:11;:28::i;4680:154::-;4748:32;:16;4772:7;4748:32;:23;:32;:::i;:::-;4796:30;;-1:-1:-1;;;;;4796:30:0;;;;;;;;4680:154;:::o;6100:252::-;6158:7;6184:6;6180:47;;-1:-1:-1;6214:1:0;6207:8;;6180:47;6251:5;;;6255:1;6251;:5;:1;6275:5;;;;;:10;6267:56;;;;-1:-1:-1;;;6267:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:132;6418:7;6445:39;6449:1;6452;6445:39;;;;;;;;;;;;;;;;;:3;:39::i;26133:394::-;-1:-1:-1;;;;;26250:21:0;;;26224:23;26250:21;;;:10;:21;;;;;;;;;;26309:20;26261:9;26309;:20::i;:::-;-1:-1:-1;;;;;26341:21:0;;;;;;;:10;:21;;;;;;:33;;-1:-1:-1;;;;;;26341:33:0;;;;;;;;;;26392:54;;26282:47;;-1:-1:-1;26341:33:0;26392:54;;;;;;26341:21;26392:54;26459:60;26474:15;26491:9;26502:16;26459:14;:60::i;4525:146::-;4590:29;:16;4611:7;4590:29;:20;:29;:::i;:::-;4635:28;;-1:-1:-1;;;;;4635:28:0;;;;;;;;4525:146;:::o;10454:232::-;10526:22;10532:7;10541:6;10526:5;:22::i;:::-;10559:119;10568:7;10577:12;:10;:12::i;:::-;10591:86;10630:6;10591:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10591:20:0;;;;;;:11;:20;;;;;;10612:12;:10;:12::i;17617:113::-;17689:17;;:33;;17711:10;17689:33;:21;:33;:::i;17742:256::-;17812:8;;-1:-1:-1;;;;;17812:8:0;:22;17809:182;;17869:8;;17850:53;;;-1:-1:-1;;;17850:53:0;;;;;;;;;;-1:-1:-1;;;;;17869:8:0;;;;17850:37;;:53;;;;;17869:8;;17850:53;;;;;;;;17869:8;;17850:53;;;5:2:-1;;;;30:1;27;20:12;5:2;17850:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17928:1:0;17917:9;:12;-1:-1:-1;;17949:29:0;;;;;;;;;;;;;;;;;17742:256;:::o;18006:438::-;18095:13;;18118:15;;18089:55;;;-1:-1:-1;;;18089:55:0;;-1:-1:-1;;;;;18118:15:0;;;18089:55;;;;;;;;;;;;18062:14;;18095:13;;;;;18089:28;;:55;;;;;;;;;;;;;;;18062:14;18095:13;18089:55;;;5:2:-1;;;;30:1;27;20:12;5:2;18089:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18089:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18188:15:0;;18392:8;;18169:267;;;-1:-1:-1;;;18169:267:0;;18293:4;18169:267;;;;;;;;;;-1:-1:-1;18169:267:0;;;;;;;;;;;;-1:-1:-1;;;;;18188:15:0;18392:8;;;;;18169:267;;;;18420:15;18169:267;;;;;;18188:15;;;;;18169:97;;:267;;;;;18089:55;;18169:267;;;;;;;;;18188:15;18169:267;;;5:2:-1;;;;30:1;27;20:12;5:2;18169:267:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18169:267:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18169:267:0;;18006:438;-1:-1:-1;;18006:438:0:o;11413:203::-;11485:4;-1:-1:-1;;;;;11510:21:0;;11502:68;;;;-1:-1:-1;;;11502:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11588:20:0;:11;:20;;;;;;;;;;;;;;;11413:203::o;28286:153::-;28396:9;28286:153;:::o;5756:136::-;5814:7;5841:43;5845:1;5848;5841:43;;;;;;;;;;;;;;;;;:3;:43::i;21875:189::-;-1:-1:-1;;;;;21971:16:0;;;;;;;:10;:16;;;;;;;21989:14;;;;;;;;21956:56;;21971:16;;;;21989:14;22005:6;21956:14;:56::i;:::-;22023:33;22039:4;22045:2;22049:6;22023:15;:33::i;:::-;21875:189;;;:::o;26535:851::-;26641:6;-1:-1:-1;;;;;26631:16:0;:6;-1:-1:-1;;;;;26631:16:0;;;:30;;;;;26660:1;26651:6;:10;26631:30;26627:752;;;-1:-1:-1;;;;;26682:20:0;;;26678:337;;-1:-1:-1;;;;;26742:22:0;;26723:16;26742:22;;;:14;:22;;;;;;;;;26803:13;:60;;26862:1;26803:60;;;-1:-1:-1;;;;;26819:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;26839:13:0;;26819:34;;;;;;;;26851:1;26819:40;;26803:60;26783:80;-1:-1:-1;26882:17:0;26902:21;26783:80;26916:6;26902:21;:13;:21;:::i;:::-;26882:41;;26942:57;26959:6;26967:9;26978;26989;26942:16;:57::i;:::-;26678:337;;;;-1:-1:-1;;;;;27035:20:0;;;27031:337;;-1:-1:-1;;;;;27095:22:0;;27076:16;27095:22;;;:14;:22;;;;;;;;;27156:13;:60;;27215:1;27156:60;;;-1:-1:-1;;;;;27172:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;27192:13:0;;27172:34;;;;;;;;27204:1;27172:40;;27156:60;27136:80;-1:-1:-1;27235:17:0;27255:21;27136:80;27269:6;27255:21;:13;:21;:::i;:::-;27235:41;;27295:57;27312:6;27320:9;27331;27342;27295:16;:57::i;9752:348::-;-1:-1:-1;;;;;9828:21:0;;9820:67;;;;-1:-1:-1;;;9820:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9921:68;9944:6;9921:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9921:18:0;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;9900:18:0;;:9;:18;;;;;;;;;;:89;10015:12;;:24;;10032:6;10015:24;:16;:24;:::i;:::-;10000:12;:39;10055:37;;;;;;;;10081:1;;-1:-1:-1;;;;;10055:37:0;;;;;;;;;;;;9752:348;;:::o;11222:183::-;11302:18;11306:4;11312:7;11302:3;:18::i;:::-;11294:64;;;;-1:-1:-1;;;11294:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11369:20:0;11392:5;11369:20;;;;;;;;;;;:28;;-1:-1:-1;;11369:28:0;;;11222:183::o;6500:193::-;6586:7;6623:12;6616:5;6608:28;;;;-1:-1:-1;;;6608:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6608:28:0;;6647:9;6663:1;6659;:5;;;;;;;6500:193;-1:-1:-1;;;;;6500:193:0:o;11036:178::-;11114:18;11118:4;11124:7;11114:3;:18::i;:::-;11113:19;11105:63;;;;;-1:-1:-1;;;11105:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;11179:27:0;11202:4;11179:27;;;11036:178::o;8957:471::-;-1:-1:-1;;;;;9055:20:0;;9047:70;;;;-1:-1:-1;;;9047:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9136:23:0;;9128:71;;;;-1:-1:-1;;;9128:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9232;9254:6;9232:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9232:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;9212:17:0;;;:9;:17;;;;;;;;;;;:91;;;;9337:20;;;;;;;:32;;9362:6;9337:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;9314:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;9385:35;;;;;;;9314:20;;9385:35;;;;;;;;;;;;;8957:471;;;:::o;27394:715::-;27573:18;27594:87;27601:12;27594:87;;;;;;;;;;;;;;;;;:6;:87::i;:::-;27573:108;;27713:1;27698:12;:16;;;:85;;;;-1:-1:-1;;;;;;27718:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;27741:16:0;;27718:40;;;;;;;;;:50;:65;;;:50;;:65;27698:85;27694:339;;;-1:-1:-1;;;;;27800:22:0;;;;;;:11;:22;;;;;;;;:40;-1:-1:-1;;27823:16:0;;27800:40;;;;;;;;27838:1;27800:46;:57;;;27694:339;;;27929:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27890:22:0;;-1:-1:-1;27890:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;-1:-1:-1;;27890:72:0;;;;;;;;;;;;;27977:25;;;:14;:25;;;;;;:44;;28005:16;;;27977:44;;;;;;;;;;27694:339;28050:51;;;;;;;;;;;;;;-1:-1:-1;;;;;28050:51:0;;;;;;;;;;;27394:715;;;;;:::o;28117:161::-;28192:6;28230:12;28223:5;28219:9;;28211:32;;;;-1:-1:-1;;;28211:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;28211:32:0;-1:-1:-1;28268:1:0;;28117:161;-1:-1:-1;;28117:161:0:o;30178:5300::-;;;;;;;;;;-1:-1:-1;30178:5300:0;;;;;;;;:::o;9436:308::-;-1:-1:-1;;;;;9512:21:0;;9504:65;;;;;-1:-1:-1;;;9504:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:12;;:24;;9614:6;9597:24;:16;:24;:::i;:::-;9582:12;:39;-1:-1:-1;;;;;9653:18:0;;:9;:18;;;;;;;;;;;:30;;9676:6;9653:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;9632:18:0;;:9;:18;;;;;;;;;;;:51;;;;9699:37;;;;;;;9632:18;;:9;;9699:37;;;;;;;;;;9436:308;;:::o

Swarm Source

bzzr://54d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf5

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

OVERVIEW

A deflationary DEFI token that incorporates transactional lotto pool rewards with buyback features and anti-dump mechanics.

0xc12eCeE46ed65D970EE5C899FCC7AE133AfF9b03
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.