Amoy Testnet

Token

DWC (DWC)
ERC-20

Overview

Max Total Supply

32,500,000 DWC

Holders

12

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
501,872.920215883270869814 DWC
0xd9845cee17f9aa07c507b6ad55eb93a9ad2221bc
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
DWCChina

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at amoy.polygonscan.com on 2024-12-09
*/

// SPDX-License-Identifier: UNLISCENSED
pragma solidity ^0.6.0;

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);
}
contract DWCChina  {
    IERC20 public dai;
    string public name = "DWC";
    string public symbol = "DWC";
    uint256 public totalSupply =32500000*10**18; // 325 lakh tokens
    uint8 public decimals = 18;
    struct User {
        uint id;        
        address referrer;
        uint partnersCount;        
        uint256 teamCount;    
        address[] directIds;    
        uint256 totalDeposit;  
        uint256 lastDeposit;
        uint256 directBusiness; 
        uint256 reward;
        uint256 levelincome;
        uint256 roraltyincome;
        uint256 maturityincome;
        uint256 totalreward;
        uint256 totalwithdraw;     
         
    }
    struct OrderInfo {
        uint256 amount; 
        uint256 holdingbonus;
        uint256 deposit_time;
        uint256 freeze_time;
        uint256 reward_time;
        bool ishelp;
        bool isactive;
        bool isdai;
        uint256 dayRewardPercents;
        uint256 withdraw_time;
        uint withno;
    }
    struct Rank
    {
        uint id;
        uint activedirect;
        uint activeteam;
    }
    struct UserRank
    {
        uint rank;
    }
    struct UserCapping
    {
        uint256 totalCapping;
        uint256 useCapping;
    }
    mapping(address => User) public users;
    mapping(address => UserRank) public userranks;
    mapping(address => UserCapping) public userscapping;
    mapping(address => OrderInfo[]) public orderInfos;
    mapping(uint=>Rank) public map_ranks;
    uint256 private constant minDeposit = 50e18;
    uint256 private constant  maxDeposit=5000e18;
    uint256 public liquidityPool_tokenAmount;
    uint256 public liquidityPool_daiAmount;
    uint256 public _burnToken;
    address public id1=0x9Ed2CFa3ebdE315FdbfC60859f093E07a52d131f;
    address public communityHoldingFund=0x3BB195603e1ec562CfE406047b2718B4226cfa2A;
    address public dwctokenPool=0x5427F55e590f70bE2967A891EA119e66c20262fF;    
    address public liquidityPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc;
    address public extraPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc;
    address public creater;
    address[5] public feewallet=[0x53888f004F49e78a41acE9261104956fE8c1199a,0x91D1eBdEBa71A59661C914C849F9dF45C812CFAf,0xfecc9357583a2F0b8Dc62335447e62f5A882477A];
    uint256[5] private feePercents = [300,50,50,50,50];
    uint public lastUserId = 2;
    uint256 private constant referDepth = 21;
    uint256 private constant interval=5*60;
    uint256 private constant timeStepdaily=interval;
    uint256 private timeLiquidityLock;
    uint256 private dayRewardPercents = 1;
    uint256[21] private levelPercents = [500,200,100,50,25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20];
    uint256[21] private levelwPercents = [1000,100,100,100,100,100,100,100,100,100,100,50,50,50,50,50,50,50,50,50,50];
    uint256[21] private levelRank = [0,1,1,2,2,3,3,3,4,4,5,5,5,5,5,6,6,6,6,6,6];
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner,address indexed _spender,uint256 _value);

    event Deposit(address indexed addr, uint256 amount, uint256 token);
    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);   
    event Transaction(address indexed user,address indexed from,uint256 value, uint8 level,uint8 Type);
    event Withdraw(address indexed user,uint256 value);
    event Swap(address indexed user,uint256 token,uint256 value);
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;    
     
    constructor(address _daiAddr) public {
        creater=msg.sender;
        dai = IERC20(_daiAddr);   
        balanceOf[dwctokenPool] =100000*10**18;
        balanceOf[communityHoldingFund] =31890000*10**18;
        balanceOf[liquidityPool] =10000*10**18;
        balanceOf[extraPool] =500000*10**18;
        emit Transfer(address(0), dwctokenPool, 100000*10**18);
        emit Transfer(address(0), communityHoldingFund, 31890000*10**18);
        emit Transfer(address(0), liquidityPool, 10000*10**18);
        emit Transfer(address(0), extraPool, 500000*10**18);
        User memory user = User({
            id: 1,            
            referrer: address(0),
            partnersCount: 0,
            teamCount: 0,
            directIds:new address[](0),
            directBusiness:0,
            totalDeposit:500e18,
            lastDeposit:500e18,
            reward:0,
            levelincome:0,
            roraltyincome:0,
            maturityincome:0,
            totalreward:0,
            totalwithdraw:0
            
        }); 
        users[id1] = user;
        userranks[id1].rank = 6;
        userscapping[id1].totalCapping =500e18; 
        orderInfos[id1].push(OrderInfo(
            500e18, 
            0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,true,100,block.timestamp+20*interval,3
        ));
        map_ranks[1] = Rank({id:1,activedirect:5,activeteam:0}); 
        map_ranks[2] = Rank({id:2,activedirect:2,activeteam:35}); 
        map_ranks[3] = Rank({id:3,activedirect:4,activeteam:80}); 
        map_ranks[4] = Rank({id:4,activedirect:6,activeteam:350}); 
        map_ranks[5] = Rank({id:5,activedirect:8,activeteam:1000}); 
        map_ranks[6] = Rank({id:6,activedirect:10,activeteam:5000});
        liquidityPool_tokenAmount=10000e18;
        liquidityPool_daiAmount=10000e18;
        timeLiquidityLock=block.timestamp;
    } 
    function register(address referrerAddress) external  {        
        registration(msg.sender, referrerAddress);
    }
    function registration(address userAddress, address referrerAddress) private {
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
        User memory user = User({
            id: lastUserId,            
            referrer: referrerAddress,
            partnersCount: 0,
            teamCount: 0,
            directIds:new address[](0),
            directBusiness:0,
            totalDeposit:0,
            lastDeposit:0,
            reward:0,
            levelincome:0,
            roraltyincome:0,
            maturityincome:0,
            totalreward:0,
            totalwithdraw:0
        });        
        users[userAddress] = user;
        users[userAddress].referrer = referrerAddress;
        lastUserId++;        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    function deposit(uint256 _amount) external {
        dai.transferFrom(msg.sender,address(this),_amount);
        _amount=_amount*2;
        require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min");
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender);  
        _deposit(msg.sender,_amount);
    }
    function depositdwc(uint256 _amount) external {
        uint256 _token=_daiToTokens(_amount);
        _transfer(msg.sender,communityHoldingFund,_token);
        _amount=_amount*2;
        require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min");
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender);  
        _depositdwc(msg.sender,_amount);
    }
    function deposit2(uint rewardindex) external {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender); 
        bool _flag=false; 
        OrderInfo storage order = orderInfos[msg.sender][rewardindex];		 
		if(!order.ishelp)
        {
			if(block.timestamp>=order.freeze_time && block.timestamp<order.freeze_time+2*interval) { 
                _flag=true;
		    }
			else {
                _flag=false;
            }
            dai.transferFrom(msg.sender, address(this), order.amount/2);
            orderInfos[msg.sender][rewardindex].ishelp=true;
            uint256 _token=_daiToTokens(order.amount/2);
            liquidityPool_daiAmount+=order.amount/2;
            if(balanceOf[dwctokenPool]>=_token) {
                liquidityPool_tokenAmount+=_token*90/100;        
                _transfer(dwctokenPool,communityHoldingFund, _token*10/100); 
                _transfer(dwctokenPool,liquidityPool, _token*90/100);
            }
            else {
                liquidityPool_tokenAmount-=_token;  
                _transfer(liquidityPool,communityHoldingFund, _token);
            }
            if(!_flag){
                order.reward_time=block.timestamp;
                order.withdraw_time=block.timestamp+20*interval;
                order.isactive=true;
            }
		}
    }
   
    function _deposit(address userAddress,uint256 _amount) private {        
        
        address referrerAddress= users[userAddress].referrer;
        users[referrerAddress].directBusiness+=_amount;        
        if(users[userAddress].totalDeposit==0)        
        {
            users[referrerAddress].partnersCount++;
            users[referrerAddress].directIds.push(userAddress);            
            _updateTeamNum(msg.sender,1);
        }  
        else {
            _updateTeamNum(msg.sender,0);
        }
        users[userAddress].totalDeposit +=_amount; 
        userscapping[userAddress].totalCapping +=_amount;
        uint256 _rate=coinRate();
        uint256 _token=_daiToTokens(_amount/2);
        liquidityPool_daiAmount+=_amount/2;
        if(balanceOf[dwctokenPool]>=_token) {
            liquidityPool_tokenAmount+=_token*90/100;        
            _transfer(dwctokenPool,communityHoldingFund, _token*10/100); 
            _transfer(dwctokenPool,liquidityPool, _token*90/100);
        }
        else {
            liquidityPool_tokenAmount-=_token;  
            _transfer(liquidityPool,communityHoldingFund, _token);
        }
        users[userAddress].lastDeposit=_amount;
        orderInfos[userAddress].push(OrderInfo(
            _amount, 0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,
            true,100,block.timestamp+20*interval,3
        ));
        for(uint i=0;i<5;i++)
        {
            _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); 
        }
        _distributelevelreward(userAddress,_amount,_rate); 
        _distributeroyaltyreward(userAddress,_amount,_rate);        
        emit Deposit(userAddress,_amount,_token*2);
        
    }
    function _depositdwc(address userAddress,uint256 _amount) private {        
        
        address referrerAddress= users[userAddress].referrer;
        users[referrerAddress].directBusiness+=_amount;        
        if(users[userAddress].totalDeposit==0)        
        {
            users[referrerAddress].partnersCount++;
            users[referrerAddress].directIds.push(userAddress);
            _updateTeamNum(msg.sender,1);
        }  
        else {
            _updateTeamNum(msg.sender,0);
        }
        users[userAddress].totalDeposit +=_amount; 
        userscapping[userAddress].totalCapping +=_amount;  
        uint256 _rate=coinRate();        
        uint256 _token=_daiToTokens(_amount/2);

        users[userAddress].lastDeposit=_amount;
        orderInfos[userAddress].push(OrderInfo(
            _amount, 0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,
            false,100,block.timestamp+20*interval,3
        ));
        for(uint i=0;i<5;i++)
        {
            _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); 
        } 
        _distributelevelreward(userAddress,_amount,_rate); 
        _distributeroyaltyreward(userAddress,_amount,_rate);        
        emit Deposit(userAddress,_amount,_token*2);
        
    }
    function _distributelevelreward(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        for(uint8 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(userranks[upline].rank>=levelRank[i])
                {
                    if(users[upline].totalDeposit>0)
                    {                        
                        uint256 reward=_amount*levelPercents[i]/10000;                        
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].levelincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),2); 
                        }
                    }
                }
                upline = users[upline].referrer;                
            }else{
                break;
            }
        }
    }
    function _distributeroyaltyreward(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        uint levelranks=0;
        uint isbreak=0;
        uint256 differentincome=0;
        uint256 secondlevelincome=0;
        for(uint8 i = 0; i < 50; i++){            
            if(upline != address(0)){
                if(userranks[upline].rank==5 || userranks[upline].rank==6) {
                    if(levelranks==0)
                    {
                        if(userranks[upline].rank==6) {                   
                            differentincome=2;
                            secondlevelincome=1;
                            levelranks=5;
                        }
                        else {
                            differentincome=1;
                            secondlevelincome=2;
                            levelranks=6;
                        }
                    }
                    else {
                        if(userranks[upline].rank==levelranks) {                   
                            differentincome=secondlevelincome;
                            isbreak=1;                        
                        }
                    }
                    if(differentincome>0){
                        uint256 reward=_amount*differentincome/100;  
                        differentincome=0;                      
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].roraltyincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),3); 
                        }
                        if(isbreak==1 || upline == id1) break;
                    }
                }
                upline = users[upline].referrer;    
                        
            }else{
                break;
            }
        }
    }
    function _distributelevelwithdraw(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        for(uint8 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(userranks[upline].rank>=levelRank[i])
                {
                    if(users[upline].totalDeposit>0)
                    {                        
                        uint256 reward=_amount*levelwPercents[i]/10000;                        
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].levelincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),2); 
                        }
                    }
                }
                upline = users[upline].referrer;                
            }else{
                break;
            }
        }
    }
    function _calLevelNow(address _user) private {        
        uint256 totaldirect  = users[_user].partnersCount;
        uint256 directBusiness  = users[_user].directBusiness;
        uint currentRank = userranks[_user].rank;
        if(currentRank>=1 && currentRank<6){            
            uint nextRank = currentRank+1;
            (, uint256 otherTeam) = getTeamCount(_user);
            uint activedirect=getActiveCount(_user,1);
            if(activedirect>=map_ranks[nextRank].activedirect && otherTeam>=map_ranks[nextRank].activeteam){
                userranks[_user].rank = nextRank;
            }
            
        }else if(totaldirect>=5 && directBusiness>=1000e18 && currentRank==0){
            userranks[_user].rank=1;
        }
    }
    function getTeamCount(address _user) public view returns(uint256, uint256){        
        uint256 maxTeam;
        uint256 otherTeam;
        uint256 totalTeam;
        for(uint256 i = 0; i < users[_user].directIds.length; i++){
            uint256 userTotalTeam =users[users[_user].directIds[i]].teamCount+1;            
            totalTeam+=userTotalTeam;
            if(userTotalTeam > maxTeam){
                maxTeam = userTotalTeam;
            }
        }
        otherTeam = totalTeam-maxTeam;
        return(maxTeam, otherTeam);
    }
    function getActiveCount(address _user,uint _rank) public view returns(uint256){        
        uint256 activedirect=0;
        for(uint256 i = 0; i < users[_user].directIds.length; i++){
            if(userranks[users[_user].directIds[i]].rank >= _rank){
                activedirect += 1;
            }
        }
        return activedirect;
    }
    function _updateTeamNum(address _user,uint isnew) private {
        address upline = users[_user].referrer;
        for(uint256 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(isnew==1)
                    users[upline].teamCount = users[upline].teamCount+1;
                _calLevelNow(upline);
                if(upline == id1) break;
                upline = users[upline].referrer;
            }else{
                break;
            }
        }
    }
	
    function _daiToTokens(uint256 _daiamount) public view returns(uint256)
    {
        return _daiamount*1e18/coinRate();      
    }
    function _tokensTodai(uint _tokenAmount) public view returns(uint)
    {
        return _tokenAmount*coinRate()/1e18;
    }
    
    function coinRate() public view returns(uint)
    {
        return liquidityPool_daiAmount*1e18/liquidityPool_tokenAmount;
    }
    function maxPayoutOf(address _user) external returns(uint256) {    
        inactivedHolding(_user);    
        if(userranks[_user].rank==0 || userranks[_user].rank==1)
            return (userscapping[_user].totalCapping*2-userscapping[_user].useCapping);
        else if(userranks[_user].rank==2 || userranks[_user].rank==3)
            return (userscapping[_user].totalCapping*3-userscapping[_user].useCapping);
        else if(userranks[_user].rank==4 || userranks[_user].rank==5)
            return (userscapping[_user].totalCapping*4-userscapping[_user].useCapping);
        else 
            return (userscapping[_user].totalCapping*5-userscapping[_user].useCapping);
    }
    function inactivedHolding(address _user) public {
        for(uint256 i = 0; i < orderInfos[_user].length; i++){
    	    OrderInfo storage order = orderInfos[_user][i];
            if(!order.ishelp && order.isactive)
            {
    	    	if(block.timestamp>order.freeze_time+2*interval)
    	        {
    	    	    order.isactive=false;
                }  
    	    }
        }   
    }     
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }    
    function getOrderLength(address _user) external view returns(uint256) {
        return orderInfos[_user].length;
    }  
    function dailyPayoutOf(address _user,uint rewardindex) private returns(uint256) {
        
		uint256 reward=0;
        OrderInfo storage order = orderInfos[_user][rewardindex];
        uint256 _remainingCapping = this.maxPayoutOf(_user);             
        if(_remainingCapping>0)
        {
            uint period=(order.withdraw_time - order.reward_time) / timeStepdaily;
            if(period>200)
            period=200;
            uint256 dailypayout =(order.amount*order.dayRewardPercents*period / 10000)-order.holdingbonus; 
            if(_remainingCapping<dailypayout){
                dailypayout = _remainingCapping;                            
            }
            if(dailypayout>0)
            { 
                reward=dailypayout;
            }                    
        }
        else {
            order.isactive=true;
        }
		return (reward);
    }
    function rewardWithdraw(uint rewardindex) public
    {
		OrderInfo storage order = orderInfos[msg.sender][rewardindex];
		if(order.isactive && order.ishelp && order.withdraw_time<block.timestamp){
            (uint256 dailypayout)=dailyPayoutOf(msg.sender,rewardindex); 
            uint256 _rate=coinRate();
		    users[msg.sender].reward +=dailypayout;
		    users[msg.sender].totalreward +=dailypayout;
            userscapping[msg.sender].useCapping +=dailypayout;
            emit Transaction(msg.sender,msg.sender,dailypayout,1,1); 
            //order.reward_time+=order.withdraw_time; 
			order.withdraw_time+=(order.withno)*10*interval;    
            order.withno+=1;
            order.holdingbonus+=dailypayout;              
            users[msg.sender].totalwithdraw+=dailypayout;
            _transfer(communityHoldingFund,msg.sender,dailypayout*1e18/_rate);
            _distributelevelreward(msg.sender,dailypayout,_rate);
            
            emit Withdraw(msg.sender,dailypayout);
		}
    }
    function tokenSwap(uint256 _tokenAmount) public
    {
        require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied");
        uint256 _dai;
		require(balanceOf[msg.sender]>=_tokenAmount, "Insufficient token balance!"); 
        uint256 deduction=_tokenAmount*2/100;
        if((_burnToken+deduction)>10000000e18){
            deduction=10000000e18-_burnToken;
        }
        if(deduction>0){      
            uint256 tokenAmount=_tokenAmount-deduction; 
            _dai=_tokensTodai(tokenAmount);
            liquidityPool_tokenAmount+=tokenAmount;
            liquidityPool_daiAmount-=_dai;
            _dai=_tokensTodai(tokenAmount);
            _transfer(msg.sender,liquidityPool,tokenAmount);
            dai.transfer(msg.sender, _dai); 
            _burnToken+=deduction;
            _burn(msg.sender,deduction);
            emit Transfer(msg.sender,address(0), deduction);
        }
        else {
            _dai=_tokensTodai(_tokenAmount);
            liquidityPool_tokenAmount+=_tokenAmount;
            liquidityPool_daiAmount-=_dai;
            _dai=_tokensTodai(_tokenAmount);
            _transfer(msg.sender,liquidityPool,_tokenAmount);
            dai.transfer(msg.sender, _dai);            
        }
        emit Swap(msg.sender,_tokenAmount,_dai);
    }
    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied");
        _transfer(msg.sender,_to,_value);
        return true;
    }
    function _transfer(address _from,address _to, uint256 _value) internal {
        require(balanceOf[_from] >= _value);
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        emit Transfer(_from, _to, _value);
    }
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }    
    function transferFrom(address _from,address _to,uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);
        _transfer(msg.sender,_to,_value);
        allowance[_from][msg.sender] -= _value;
        return true;
    }
    
    function burn(uint256 amount,address account) public returns (bool) {
        if (msg.sender != dwctokenPool) {revert("Access Denied");}
        _burn(account, amount);
        return true;
    }
    function _burn(address account, uint256 amount) internal virtual 
    {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = balanceOf[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        require(totalSupply>=amount, "Invalid amount of tokens!");
        balanceOf[account] = accountBalance - amount;        
        totalSupply -= amount;
    }
    function afterTenthYears(uint256 _amount) public
    {
        require(msg.sender==creater,"Only contract owner"); 
        require(block.timestamp>(timeLiquidityLock+3650 days),"Liquidity Locked for 10 years"); 
        require(_amount>0, "Insufficient reward to withdraw!");
        dai.transfer(msg.sender, _amount);  
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_daiAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Type","type":"uint8"}],"name":"Transaction","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_burnToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_daiamount","type":"uint256"}],"name":"_daiToTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_tokensTodai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterTenthYears","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coinRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityHoldingFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"deposit2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositdwc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dwctokenPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feewallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_rank","type":"uint256"}],"name":"getActiveCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getOrderLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getTeamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"inactivedHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_daiAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_tokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"map_ranks","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"activedirect","type":"uint256"},{"internalType":"uint256","name":"activeteam","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"maxPayoutOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderInfos","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"holdingbonus","type":"uint256"},{"internalType":"uint256","name":"deposit_time","type":"uint256"},{"internalType":"uint256","name":"freeze_time","type":"uint256"},{"internalType":"uint256","name":"reward_time","type":"uint256"},{"internalType":"bool","name":"ishelp","type":"bool"},{"internalType":"bool","name":"isactive","type":"bool"},{"internalType":"bool","name":"isdai","type":"bool"},{"internalType":"uint256","name":"dayRewardPercents","type":"uint256"},{"internalType":"uint256","name":"withdraw_time","type":"uint256"},{"internalType":"uint256","name":"withno","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"rewardWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"tokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userranks","outputs":[{"internalType":"uint256","name":"rank","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"},{"internalType":"uint256","name":"teamCount","type":"uint256"},{"internalType":"uint256","name":"totalDeposit","type":"uint256"},{"internalType":"uint256","name":"lastDeposit","type":"uint256"},{"internalType":"uint256","name":"directBusiness","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"levelincome","type":"uint256"},{"internalType":"uint256","name":"roraltyincome","type":"uint256"},{"internalType":"uint256","name":"maturityincome","type":"uint256"},{"internalType":"uint256","name":"totalreward","type":"uint256"},{"internalType":"uint256","name":"totalwithdraw","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userscapping","outputs":[{"internalType":"uint256","name":"totalCapping","type":"uint256"},{"internalType":"uint256","name":"useCapping","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c0604052600360808190526244574360e81b60a090815262000026916001919062000b6f565b506040805180820190915260038082526244574360e81b6020909201918252620000539160029162000b6f565b506a1ae22487c1042af080000060039081556004805460ff19166012179055600d80546001600160a01b0319908116739ed2cfa3ebde315fdbfc60859f093e07a52d131f17909155600e80548216733bb195603e1ec562cfe406047b2718b4226cfa2a179055600f80548216735427f55e590f70be2967a891ea119e66c20262ff17905560108054821673d9845cee17f9aa07c507b6ad55eb93a9ad2221bc90811790915560118054909216179055604080516060810182527353888f004f49e78a41ace9261104956fe8c1199a81527391d1ebdeba71a59661c914c849f9df45c812cfaf602082015273fecc9357583a2f0b8dc62335447e62f5a882477a9181019190915262000168916013919062000bf4565b506040805160a08101825261012c8152603260208201819052918101829052606081018290526080810191909152620001a690601890600562000c4d565b506002601d556001601f55604080516102a0810182526101f4815260c86020808301919091526064928201929092526032606082015260196080820181905260a0820152601460c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200026e9190601562000c84565b50604080516102a0810182526103e88152606460208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526032610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200032a90603590601562000c84565b50604080516102a08101825260008152600160208201819052918101919091526002606082018190526080820152600360a0820181905260c0820181905260e08201526004610100820181905261012082015260056101408201819052610160820181905261018082018190526101a082018190526101c082015260066101e082018190526102008201819052610220820181905261024082018190526102608201819052610280820152620003e590604a90601562000cba565b50348015620003f357600080fd5b5060405162003f9838038062003f98833981810160405260208110156200041957600080fd5b5051601280546001600160a01b03199081163317909155600080546001600160a01b0380851691909316178155600f805483168252605f6020908152604080842069152d02c7e14af680000090819055600e54861685528185206a1a60f85d30f2ae7740000090556010548616855281852069021e19e0c9bab24000009055601154861685528185206969e10de76676d0800000905592548151938452905194169360008051602062003f788339815191529281900390910190a3600e54604080516a1a60f85d30f2ae77400000815290516001600160a01b039092169160009160008051602062003f78833981519152919081900360200190a36010546040805169021e19e0c9bab2400000815290516001600160a01b039092169160009160008051602062003f78833981519152919081900360200190a3601154604080516969e10de76676d0800000815290516001600160a01b039092169160009160008051602062003f78833981519152919081900360200190a36200059c62000cf0565b604051806101c001604052806001815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160401b0381118015620005e557600080fd5b5060405190808252806020026020018201604052801562000610578160200160208202803683370190505b508152681b1ae4d6e2ef500000602080830182905260408084019290925260006060808501829052608080860183905260a0860183905260c0860183905260e086018390526101008601839052610120909501829052600d546001600160a01b039081168352600584529184902086518155868401516001820180546001600160a01b031916919094161790925592850151600282015591840151600383015591830151805193945084939192620006d19260048501929091019062000d68565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01559050506006806000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550681b1ae4d6e2ef50000060076000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000018190555060086000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020604051806101600160405280681b1ae4d6e2ef50000081526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff02191690831515021790555061010082015181600601556101208201518160070155610140820151816008015550506040518060600160405280600181526020016005815260200160008152506009600060018152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060028152602001600281526020016023815250600960006002815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806003815260200160048152602001605081525060096000600381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506040518060600160405280600481526020016006815260200161015e8152506009600060048152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060058152602001600881526020016103e88152506009600060058152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060068152602001600a8152602001611388815250600960006006815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505069021e19e0c9bab2400000600a8190555069021e19e0c9bab2400000600b8190555042601e81905550505062000df7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000bb257805160ff191683800117855562000be2565b8280016001018555821562000be2579182015b8281111562000be257825182559160200191906001019062000bc5565b5062000bf092915062000dbf565b5090565b826005810192821562000c3f579160200282015b8281111562000c3f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c08565b5062000bf092915062000dd6565b826005810192821562000be2579160200282015b8281111562000be2578251829061ffff1690559160200191906001019062000c61565b826015810192821562000be2579160200282018281111562000be2578251829061ffff1690559160200191906001019062000c61565b826015810192821562000be2579160200282015b8281111562000be2578251829060ff1690559160200191906001019062000cce565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805482825590600052602060002090810192821562000c3f579160200282018281111562000c3f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c08565b5b8082111562000bf0576000815560010162000dc0565b5b8082111562000bf05780546001600160a01b031916815560010162000dd7565b6131718062000e076000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107e3578063de6b8a2e14610811578063f4b9fa7514610837578063f571545b1461083f578063fa96bd9c14610847578063fcd3533c1461086d57610269565b8063a87430ba146106c4578063a9059cbb14610757578063b6b55f2514610783578063b842f3b6146107a0578063d9f01b7d146107bd57610269565b806371c757ec1161011557806371c757ec146106245780637fe0c526146106635780639351a77a1461068f57806395d89b41146106975780639e1c7a9f1461069f578063a8365d16146106bc57610269565b8063517999bc1461054b57806358cbcb7c1461055357806360a1cbd714610570578063665a11ca146105f657806370a08231146105fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e486146104c157806345653a6d146104e75780634bdf3bf2146104ef5780634c0cc366146105155780634d79348a1461051d578063509222cd1461052557610269565b806323b872dd146104225780632f05772914610458578063313ce56714610475578063348d44871461049357806338c87f1a1461049b57610269565b806310d931011161023157806310d93101146103b957806318160ddd146103d657806320bdc7c7146103de578063222f6182146103e65780632280b7a81461040557610269565b806302fd7a031461026e57806306fdde031461029d578063095ea7b31461031a57806309be84681461035a5780630f32237314610395575b600080fd5b61028b6004803603602081101561028457600080fd5b5035610899565b60408051918252519081900360200190f35b6102a56108be565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103466004803603604081101561033057600080fd5b506001600160a01b03813516906020013561094b565b604080519115158252519081900360200190f35b6103776004803603602081101561037057600080fd5b50356109b1565b60408051938452602084019290925282820152519081900360600190f35b61039d6109d2565b604080516001600160a01b039092168252519081900360200190f35b61039d600480360360208110156103cf57600080fd5b50356109e1565b61028b6109fe565b61028b610a04565b610403600480360360208110156103fc57600080fd5b5035610a0a565b005b6104036004803603602081101561041b57600080fd5b5035610c86565b6103466004803603606081101561043857600080fd5b506001600160a01b03813581169160208101359091169060400135610fb5565b6104036004803603602081101561046e57600080fd5b5035611024565b61047d611142565b6040805160ff9092168252519081900360200190f35b61028b61114b565b610403600480360360208110156104b157600080fd5b50356001600160a01b0316611151565b610403600480360360208110156104d757600080fd5b50356001600160a01b03166111f5565b61039d611202565b61028b6004803603602081101561050557600080fd5b50356001600160a01b0316611211565b61028b61138a565b61028b611390565b6103466004803603602081101561053b57600080fd5b50356001600160a01b0316611396565b61039d6113b3565b61028b6004803603602081101561056957600080fd5b50356113c2565b61059c6004803603604081101561058657600080fd5b506001600160a01b0381351690602001356113de565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b61039d61145a565b61028b6004803603602081101561061457600080fd5b50356001600160a01b0316611469565b61064a6004803603602081101561063a57600080fd5b50356001600160a01b031661147b565b6040805192835260208301919091528051918290030190f35b61028b6004803603604081101561067957600080fd5b506001600160a01b03813516906020013561152a565b61039d6115c1565b6102a56115d0565b610403600480360360208110156106b557600080fd5b5035611628565b61039d6117ad565b6106ea600480360360208110156106da57600080fd5b50356001600160a01b03166117bc565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b6103466004803603604081101561076d57600080fd5b506001600160a01b03813516906020013561182d565b6104036004803603602081101561079957600080fd5b50356118c2565b610403600480360360208110156107b657600080fd5b5035611a3d565b61028b600480360360208110156107d357600080fd5b50356001600160a01b0316611bda565b61028b600480360360408110156107f957600080fd5b506001600160a01b0381358116916020013516611bec565b61028b6004803603602081101561082757600080fd5b50356001600160a01b0316611c09565b61039d611c24565b61028b611c33565b61064a6004803603602081101561085d57600080fd5b50356001600160a01b0316611c52565b6103466004803603604081101561088357600080fd5b50803590602001356001600160a01b0316611c6b565b60006108a3611c33565b82670de0b6b3a764000002816108b557fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109ee57fe5b01546001600160a01b0316905081565b60035481565b600c5481565b610a1333611396565b610a4e5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b610a5733611151565b336000908152600860205260408120805482919084908110610a7557fe5b60009182526020909120600990910201600581015490915060ff16610c815780600301544210158015610aaf575060038101546102580142105b15610abd5760019150610ac2565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b505033600090815260086020526040902080546001919085908110610b6c57fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b9f906002905b04610899565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c3157600a80546064605a84028190049091018255600f54600e54610c0a936001600160a01b039283169392909116919085025b04611cc7565b600f54601054610c2c916001600160a01b0390811691166064605a8502610c04565b610c57565b600a80548290039055601054600e54610c57916001600160a01b03908116911683611cc7565b82610c7f57426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610cac5750600e546001600160a01b03163314155b8015610cc357506010546001600160a01b03163314155b610d04576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d68576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d9a5750600c546a084595161401484a000000035b8015610eb457808303610dac816113c2565b600a805483019055600b805482900390559250610dc8816113c2565b601054909350610de39033906001600160a01b031683611cc7565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5050600c805483019055610e763383611d58565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f76565b610ebd836113c2565b600a805485019055600b805482900390559150610ed9836113c2565b601054909250610ef49033906001600160a01b031685611cc7565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050506040513d6020811015610f7357600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fe557600080fd5b610ff0338484611cc7565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061102f82610899565b600e5490915061104a9033906001600160a01b031683611cc7565b33600090815260056020526040902060060154600290920291821080159061107b57506802b5e3af16b18800008210155b801561109057506802b5e3af16b18800008206155b80156110a6575069010f0cf064dd592000008211155b6110e7576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110f033611396565b61112b5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b61113433611151565b61113e3383611e78565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b03821660009081526008602052604090205481101561113e576001600160a01b038216600090815260086020526040812080548390811061119857fe5b60009182526020909120600990910201600581015490915060ff161580156111c957506005810154610100900460ff165b156111ec576003810154610258014211156111ec5760058101805461ff00191690555b50600101611154565b6111ff33826121c2565b50565b6012546001600160a01b031681565b600061121c82611151565b6001600160a01b038216600090815260066020526040902054158061125957506001600160a01b0382166000908152600660205260409020546001145b1561128757506001600160a01b038116600090815260076020526040902060018101549054600202036108b9565b6001600160a01b038216600090815260066020526040902054600214806112c657506001600160a01b0382166000908152600660205260409020546003145b156112f457506001600160a01b038116600090815260076020526040902060018101549054600302036108b9565b6001600160a01b0382166000908152600660205260409020546004148061133357506001600160a01b0382166000908152600660205260409020546005145b1561136157506001600160a01b038116600090815260076020526040902060018101549054600402036108b9565b506001600160a01b038116600090815260076020526040902060018101549054600502036108b9565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113d5611c33565b8302816108b557fe5b600860205281600052604060002081815481106113f757fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b03871660009081526005602052604090206004015481101561151b576001600160a01b038716600090815260056020819052604082206004018054839190859081106114d257fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206003015492830160019081019301905084811115611512578094505b50600101611483565b50919350508290039050915091565b600080805b6001600160a01b0385166000908152600560205260409020600401548110156115b9576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061158057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054106115b1576001820191505b60010161152f565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b6012546001600160a01b0316331461167d576040805162461bcd60e51b815260206004820152601360248201527227b7363c9031b7b73a3930b1ba1037bbb732b960691b604482015290519081900360640190fd5b601e546312cc03000142116116d9576040805162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479204c6f636b656420666f72203130207965617273000000604482015290519081900360640190fd5b6000811161172e576040805162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742072657761726420746f20776974686472617721604482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506040513d6020811015610c8157600080fd5b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906118565750600e546001600160a01b03163314155b801561186d57506010546001600160a01b03163314155b6118ae576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b9338484611cc7565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561191d57600080fd5b505af1158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b505033600090815260056020526040902060060154600290910290811080159061197a57506802b5e3af16b18800008110155b801561198f57506802b5e3af16b18800008106155b80156119a5575069010f0cf064dd592000008111155b6119e6576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6119ef33611396565b611a2a5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b611a3333611151565b6111ff338261248b565b336000908152600860205260408120805483908110611a5857fe5b906000526020600020906009020190508060050160019054906101000a900460ff168015611a8a5750600581015460ff165b8015611a995750428160070154105b1561113e576000611aaa33846127f8565b90506000611ab6611c33565b33600081815260056020908152604080832060088101805489019055600c01805488019055600782529182902060019081018054880190558251878152918201819052818301529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e54611b93916001600160a01b039091169083670de0b6b3a7640000860281610c0457fe5b611b9e338383612936565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611c4c57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611cbd576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b98284611d58565b6001600160a01b0383166000908152605f6020526040902054811115611cec57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611d9d5760405162461bcd60e51b81526004018080602001828103825260218152602001806130f86021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611df55760405162461bcd60e51b81526004018080602001828103825260228152602001806130d66022913960400191505060405180910390fd5b816003541015611e4c576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611f1b576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611f16903390612b67565b611f26565b611f26336000612b67565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611f5e611c33565b90506000611f6d600285610b99565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561215f57600e54612157906001600160a01b03166013836005811061212e57fe5b01546001600160a01b03166127106018856005811061214957fe5b0154866002020281610c0457fe5b600101612108565b5061216b858584612936565b612176858584612c24565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b6121cb82611396565b1561220b576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61221481611396565b61225b576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b612263612fd9565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156122ac57600080fd5b506040519080825280602002602001820160405280156122d6578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906123a8929190613051565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461252e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155612529903390612b67565b612539565b612539336000612b67565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055612571611c33565b90506000612580600285610b99565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161260b57600a80546064605a84028190049091018255600f54600e546125e4936001600160a01b03928316939290911691908502610c04565b600f54601054612606916001600160a01b0390811691166064605a8502610c04565b612631565b600a80548290039055601054600e54612631916001600160a01b03908116911683611cc7565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561215f57600e546127f0906001600160a01b03166013836005811061212e57fe5b6001016127ca565b6001600160a01b03821660009081526008602052604081208054829182918590811061282057fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b50519050801561291a57600061012c8360040154846007015403816128cc57fe5b04905060c88111156128dc575060c85b6000836001015461271083866006015487600001540202816128fa57fe5b04039050808310156129095750815b8015612913578094505b505061292c565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff161015612b60576001600160a01b03821615612b5357604a8160ff166015811061298357fe5b01546001600160a01b03831660009081526006602052604090205410612b2d576001600160a01b0382166000908152600560208190526040909120015415612b2d57600061271060208360ff16601581106129da57fe5b01548602816129e557fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612a3957600080fd5b505af1158015612a4d573d6000803e3d6000fd5b505050506040513d6020811015612a6357600080fd5b505190508015612b2a5781811015612a79578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612ad491168587670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612b58565b612b60565b600101612958565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c7f576001600160a01b03821615612c17578260011415612bcd576001600160a01b0382166000908152600560205260409020600301805460010190555b612bd682612ecf565b600d546001600160a01b0383811691161415612bf157610c7f565b6001600160a01b0391821660009081526005602052604090206001015490911690612c1c565b610c7f565b600101612b89565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612ec4576001600160a01b03861615612eb7576001600160a01b03861660009081526006602052604090205460051480612ca557506001600160a01b038616600090815260066020819052604090912054145b15612e915784612cf4576001600160a01b0386166000908152600660208190526040909120541415612ce257600292506001915060059450612cef565b6001925060029150600694505b612d1c565b6001600160a01b038616600090815260066020526040902054851415612d1c57819250600193505b8215612e9157604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612d7557600080fd5b505af1158015612d89573d6000803e3d6000fd5b505050506040513d6020811015612d9f57600080fd5b505190508015612e665781811015612db5578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612e109116898b670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612e825750600d546001600160a01b038981169116145b15612e8e575050612ec4565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612ebc565b612ec4565b600101612c4a565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612f0e5750600681105b15612f9057600181016000612f228661147b565b9150506000612f3287600161152a565b6000848152600960205260409020600101549091508110801590612f6757506000838152600960205260409020600201548210155b15612f88576001600160a01b03871660009081526006602052604090208390555b505050610c7f565b60058310158015612faa5750683635c9adc5dea000008210155b8015612fb4575080155b15610c7f575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156130a6579160200282015b828111156130a657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613071565b506130b29291506130b6565b5090565b5b808211156130b25780546001600160a01b03191681556001016130b756fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea2646970667358221220f2c3d1f8c3991b6013f246609f0d155881f3d56862e4297bfef970d015ab087464736f6c634300060c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107e3578063de6b8a2e14610811578063f4b9fa7514610837578063f571545b1461083f578063fa96bd9c14610847578063fcd3533c1461086d57610269565b8063a87430ba146106c4578063a9059cbb14610757578063b6b55f2514610783578063b842f3b6146107a0578063d9f01b7d146107bd57610269565b806371c757ec1161011557806371c757ec146106245780637fe0c526146106635780639351a77a1461068f57806395d89b41146106975780639e1c7a9f1461069f578063a8365d16146106bc57610269565b8063517999bc1461054b57806358cbcb7c1461055357806360a1cbd714610570578063665a11ca146105f657806370a08231146105fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e486146104c157806345653a6d146104e75780634bdf3bf2146104ef5780634c0cc366146105155780634d79348a1461051d578063509222cd1461052557610269565b806323b872dd146104225780632f05772914610458578063313ce56714610475578063348d44871461049357806338c87f1a1461049b57610269565b806310d931011161023157806310d93101146103b957806318160ddd146103d657806320bdc7c7146103de578063222f6182146103e65780632280b7a81461040557610269565b806302fd7a031461026e57806306fdde031461029d578063095ea7b31461031a57806309be84681461035a5780630f32237314610395575b600080fd5b61028b6004803603602081101561028457600080fd5b5035610899565b60408051918252519081900360200190f35b6102a56108be565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103466004803603604081101561033057600080fd5b506001600160a01b03813516906020013561094b565b604080519115158252519081900360200190f35b6103776004803603602081101561037057600080fd5b50356109b1565b60408051938452602084019290925282820152519081900360600190f35b61039d6109d2565b604080516001600160a01b039092168252519081900360200190f35b61039d600480360360208110156103cf57600080fd5b50356109e1565b61028b6109fe565b61028b610a04565b610403600480360360208110156103fc57600080fd5b5035610a0a565b005b6104036004803603602081101561041b57600080fd5b5035610c86565b6103466004803603606081101561043857600080fd5b506001600160a01b03813581169160208101359091169060400135610fb5565b6104036004803603602081101561046e57600080fd5b5035611024565b61047d611142565b6040805160ff9092168252519081900360200190f35b61028b61114b565b610403600480360360208110156104b157600080fd5b50356001600160a01b0316611151565b610403600480360360208110156104d757600080fd5b50356001600160a01b03166111f5565b61039d611202565b61028b6004803603602081101561050557600080fd5b50356001600160a01b0316611211565b61028b61138a565b61028b611390565b6103466004803603602081101561053b57600080fd5b50356001600160a01b0316611396565b61039d6113b3565b61028b6004803603602081101561056957600080fd5b50356113c2565b61059c6004803603604081101561058657600080fd5b506001600160a01b0381351690602001356113de565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b61039d61145a565b61028b6004803603602081101561061457600080fd5b50356001600160a01b0316611469565b61064a6004803603602081101561063a57600080fd5b50356001600160a01b031661147b565b6040805192835260208301919091528051918290030190f35b61028b6004803603604081101561067957600080fd5b506001600160a01b03813516906020013561152a565b61039d6115c1565b6102a56115d0565b610403600480360360208110156106b557600080fd5b5035611628565b61039d6117ad565b6106ea600480360360208110156106da57600080fd5b50356001600160a01b03166117bc565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b6103466004803603604081101561076d57600080fd5b506001600160a01b03813516906020013561182d565b6104036004803603602081101561079957600080fd5b50356118c2565b610403600480360360208110156107b657600080fd5b5035611a3d565b61028b600480360360208110156107d357600080fd5b50356001600160a01b0316611bda565b61028b600480360360408110156107f957600080fd5b506001600160a01b0381358116916020013516611bec565b61028b6004803603602081101561082757600080fd5b50356001600160a01b0316611c09565b61039d611c24565b61028b611c33565b61064a6004803603602081101561085d57600080fd5b50356001600160a01b0316611c52565b6103466004803603604081101561088357600080fd5b50803590602001356001600160a01b0316611c6b565b60006108a3611c33565b82670de0b6b3a764000002816108b557fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109ee57fe5b01546001600160a01b0316905081565b60035481565b600c5481565b610a1333611396565b610a4e5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b610a5733611151565b336000908152600860205260408120805482919084908110610a7557fe5b60009182526020909120600990910201600581015490915060ff16610c815780600301544210158015610aaf575060038101546102580142105b15610abd5760019150610ac2565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b505033600090815260086020526040902080546001919085908110610b6c57fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b9f906002905b04610899565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c3157600a80546064605a84028190049091018255600f54600e54610c0a936001600160a01b039283169392909116919085025b04611cc7565b600f54601054610c2c916001600160a01b0390811691166064605a8502610c04565b610c57565b600a80548290039055601054600e54610c57916001600160a01b03908116911683611cc7565b82610c7f57426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610cac5750600e546001600160a01b03163314155b8015610cc357506010546001600160a01b03163314155b610d04576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d68576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d9a5750600c546a084595161401484a000000035b8015610eb457808303610dac816113c2565b600a805483019055600b805482900390559250610dc8816113c2565b601054909350610de39033906001600160a01b031683611cc7565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5050600c805483019055610e763383611d58565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f76565b610ebd836113c2565b600a805485019055600b805482900390559150610ed9836113c2565b601054909250610ef49033906001600160a01b031685611cc7565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050506040513d6020811015610f7357600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fe557600080fd5b610ff0338484611cc7565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061102f82610899565b600e5490915061104a9033906001600160a01b031683611cc7565b33600090815260056020526040902060060154600290920291821080159061107b57506802b5e3af16b18800008210155b801561109057506802b5e3af16b18800008206155b80156110a6575069010f0cf064dd592000008211155b6110e7576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110f033611396565b61112b5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b61113433611151565b61113e3383611e78565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b03821660009081526008602052604090205481101561113e576001600160a01b038216600090815260086020526040812080548390811061119857fe5b60009182526020909120600990910201600581015490915060ff161580156111c957506005810154610100900460ff165b156111ec576003810154610258014211156111ec5760058101805461ff00191690555b50600101611154565b6111ff33826121c2565b50565b6012546001600160a01b031681565b600061121c82611151565b6001600160a01b038216600090815260066020526040902054158061125957506001600160a01b0382166000908152600660205260409020546001145b1561128757506001600160a01b038116600090815260076020526040902060018101549054600202036108b9565b6001600160a01b038216600090815260066020526040902054600214806112c657506001600160a01b0382166000908152600660205260409020546003145b156112f457506001600160a01b038116600090815260076020526040902060018101549054600302036108b9565b6001600160a01b0382166000908152600660205260409020546004148061133357506001600160a01b0382166000908152600660205260409020546005145b1561136157506001600160a01b038116600090815260076020526040902060018101549054600402036108b9565b506001600160a01b038116600090815260076020526040902060018101549054600502036108b9565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113d5611c33565b8302816108b557fe5b600860205281600052604060002081815481106113f757fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b03871660009081526005602052604090206004015481101561151b576001600160a01b038716600090815260056020819052604082206004018054839190859081106114d257fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206003015492830160019081019301905084811115611512578094505b50600101611483565b50919350508290039050915091565b600080805b6001600160a01b0385166000908152600560205260409020600401548110156115b9576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061158057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054106115b1576001820191505b60010161152f565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b6012546001600160a01b0316331461167d576040805162461bcd60e51b815260206004820152601360248201527227b7363c9031b7b73a3930b1ba1037bbb732b960691b604482015290519081900360640190fd5b601e546312cc03000142116116d9576040805162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479204c6f636b656420666f72203130207965617273000000604482015290519081900360640190fd5b6000811161172e576040805162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742072657761726420746f20776974686472617721604482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506040513d6020811015610c8157600080fd5b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906118565750600e546001600160a01b03163314155b801561186d57506010546001600160a01b03163314155b6118ae576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b9338484611cc7565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561191d57600080fd5b505af1158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b505033600090815260056020526040902060060154600290910290811080159061197a57506802b5e3af16b18800008110155b801561198f57506802b5e3af16b18800008106155b80156119a5575069010f0cf064dd592000008111155b6119e6576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6119ef33611396565b611a2a5760405162461bcd60e51b81526004018080602001828103825260238152602001806131196023913960400191505060405180910390fd5b611a3333611151565b6111ff338261248b565b336000908152600860205260408120805483908110611a5857fe5b906000526020600020906009020190508060050160019054906101000a900460ff168015611a8a5750600581015460ff165b8015611a995750428160070154105b1561113e576000611aaa33846127f8565b90506000611ab6611c33565b33600081815260056020908152604080832060088101805489019055600c01805488019055600782529182902060019081018054880190558251878152918201819052818301529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e54611b93916001600160a01b039091169083670de0b6b3a7640000860281610c0457fe5b611b9e338383612936565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611c4c57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611cbd576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b98284611d58565b6001600160a01b0383166000908152605f6020526040902054811115611cec57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611d9d5760405162461bcd60e51b81526004018080602001828103825260218152602001806130f86021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611df55760405162461bcd60e51b81526004018080602001828103825260228152602001806130d66022913960400191505060405180910390fd5b816003541015611e4c576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611f1b576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611f16903390612b67565b611f26565b611f26336000612b67565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611f5e611c33565b90506000611f6d600285610b99565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561215f57600e54612157906001600160a01b03166013836005811061212e57fe5b01546001600160a01b03166127106018856005811061214957fe5b0154866002020281610c0457fe5b600101612108565b5061216b858584612936565b612176858584612c24565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b6121cb82611396565b1561220b576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61221481611396565b61225b576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b612263612fd9565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156122ac57600080fd5b506040519080825280602002602001820160405280156122d6578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906123a8929190613051565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461252e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155612529903390612b67565b612539565b612539336000612b67565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055612571611c33565b90506000612580600285610b99565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161260b57600a80546064605a84028190049091018255600f54600e546125e4936001600160a01b03928316939290911691908502610c04565b600f54601054612606916001600160a01b0390811691166064605a8502610c04565b612631565b600a80548290039055601054600e54612631916001600160a01b03908116911683611cc7565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561215f57600e546127f0906001600160a01b03166013836005811061212e57fe5b6001016127ca565b6001600160a01b03821660009081526008602052604081208054829182918590811061282057fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050506040513d60208110156128ab57600080fd5b50519050801561291a57600061012c8360040154846007015403816128cc57fe5b04905060c88111156128dc575060c85b6000836001015461271083866006015487600001540202816128fa57fe5b04039050808310156129095750815b8015612913578094505b505061292c565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff161015612b60576001600160a01b03821615612b5357604a8160ff166015811061298357fe5b01546001600160a01b03831660009081526006602052604090205410612b2d576001600160a01b0382166000908152600560208190526040909120015415612b2d57600061271060208360ff16601581106129da57fe5b01548602816129e557fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612a3957600080fd5b505af1158015612a4d573d6000803e3d6000fd5b505050506040513d6020811015612a6357600080fd5b505190508015612b2a5781811015612a79578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612ad491168587670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612b58565b612b60565b600101612958565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c7f576001600160a01b03821615612c17578260011415612bcd576001600160a01b0382166000908152600560205260409020600301805460010190555b612bd682612ecf565b600d546001600160a01b0383811691161415612bf157610c7f565b6001600160a01b0391821660009081526005602052604090206001015490911690612c1c565b610c7f565b600101612b89565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612ec4576001600160a01b03861615612eb7576001600160a01b03861660009081526006602052604090205460051480612ca557506001600160a01b038616600090815260066020819052604090912054145b15612e915784612cf4576001600160a01b0386166000908152600660208190526040909120541415612ce257600292506001915060059450612cef565b6001925060029150600694505b612d1c565b6001600160a01b038616600090815260066020526040902054851415612d1c57819250600193505b8215612e9157604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612d7557600080fd5b505af1158015612d89573d6000803e3d6000fd5b505050506040513d6020811015612d9f57600080fd5b505190508015612e665781811015612db5578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612e109116898b670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612e825750600d546001600160a01b038981169116145b15612e8e575050612ec4565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612ebc565b612ec4565b600101612c4a565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612f0e5750600681105b15612f9057600181016000612f228661147b565b9150506000612f3287600161152a565b6000848152600960205260409020600101549091508110801590612f6757506000838152600960205260409020600201548210155b15612f88576001600160a01b03871660009081526006602052604090208390555b505050610c7f565b60058310158015612faa5750683635c9adc5dea000008210155b8015612fb4575080155b15610c7f575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156130a6579160200282015b828111156130a657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613071565b506130b29291506130b6565b5090565b5b808211156130b25780546001600160a01b03191681556001016130b756fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea2646970667358221220f2c3d1f8c3991b6013f246609f0d155881f3d56862e4297bfef970d015ab087464736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

-----Decoded View---------------
Arg [0] : _daiAddr (address): 0x567C50F9571EC31eFC9C02d3B9a7510195A9976F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f


Deployed Bytecode Sourcemap

743:27135:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20728:134;;;;;;;;;;;;;;;;-1:-1:-1;20728:134:0;;:::i;:::-;;;;;;;;;;;;;;;;793:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26363:216;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26363:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2242:36;;;;;;;;;;;;;;;;-1:-1:-1;2242:36:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2822:67;;;:::i;:::-;;;;-1:-1:-1;;;;;2822:67:0;;;;;;;;;;;;;;2925:158;;;;;;;;;;;;;;;;-1:-1:-1;2925:158:0;;:::i;861:43::-;;;:::i;2478:25::-;;;:::i;8503:1392::-;;;;;;;;;;;;;;;;-1:-1:-1;8503:1392:0;;:::i;:::-;;24450:1373;;;;;;;;;;;;;;;;-1:-1:-1;24450:1373:0;;:::i;26589:274::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26589:274:0;;;;;;;;;;;;;;;;;:::i;7988:509::-;;;;;;;;;;;;;;;;-1:-1:-1;7988:509:0;;:::i;930:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3147;;;:::i;21840:402::-;;;;;;;;;;;;;;;;-1:-1:-1;21840:402:0;-1:-1:-1;;;;;21840:402:0;;:::i;6451:121::-;;;;;;;;;;;;;;;;-1:-1:-1;6451:121:0;-1:-1:-1;;;;;6451:121:0;;:::i;2896:22::-;;;:::i;21143:691::-;;;;;;;;;;;;;;;;-1:-1:-1;21143:691:0;-1:-1:-1;;;;;21143:691:0;;:::i;2433:38::-;;;:::i;2386:40::-;;;:::i;22253:110::-;;;;;;;;;;;;;;;;-1:-1:-1;22253:110:0;-1:-1:-1;;;;;22253:110:0;;:::i;2510:61::-;;;:::i;20868:126::-;;;;;;;;;;;;;;;;-1:-1:-1;20868:126:0;;:::i;2186:49::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2186:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:71;;;:::i;4306:44::-;;;;;;;;;;;;;;;;-1:-1:-1;4306:44:0;-1:-1:-1;;;;;4306:44:0;;:::i;19280:561::-;;;;;;;;;;;;;;;;-1:-1:-1;19280:561:0;-1:-1:-1;;;;;19280:561:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19847:357;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19847:357:0;;;;;;;;:::i;2663:70::-;;;:::i;826:28::-;;;:::i;27542:333::-;;;;;;;;;;;;;;;;-1:-1:-1;27542:333:0;;:::i;2578:78::-;;;:::i;2032:37::-;;;;;;;;;;;;;;;;-1:-1:-1;2032:37:0;-1:-1:-1;;;;;2032:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2032:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25829:281;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25829:281:0;;;;;;;;:::i;7525:457::-;;;;;;;;;;;;;;;;-1:-1:-1;7525:457:0;;:::i;23410:1034::-;;;;;;;;;;;;;;;;-1:-1:-1;23410:1034:0;;:::i;2076:45::-;;;;;;;;;;;;;;;;-1:-1:-1;2076:45:0;-1:-1:-1;;;;;2076:45:0;;:::i;4357:64::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4357:64:0;;;;;;;;;;:::i;22373:120::-;;;;;;;;;;;;;;;;-1:-1:-1;22373:120:0;-1:-1:-1;;;;;22373:120:0;;:::i;769:17::-;;;:::i;21006:131::-;;;:::i;2128:51::-;;;;;;;;;;;;;;;;-1:-1:-1;2128:51:0;-1:-1:-1;;;;;2128:51:0;;:::i;26875:199::-;;;;;;;;;;;;;;;;-1:-1:-1;26875:199:0;;;;;;-1:-1:-1;;;;;26875:199:0;;:::i;20728:134::-;20790:7;20838:10;:8;:10::i;:::-;20822;20833:4;20822:15;:26;;;;;;20815:33;;20728:134;;;;:::o;793:26::-;;;;;;;;;;;;;;;-1:-1:-1;;793:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26363:216::-;26465:10;26430:12;26455:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;26455:31:0;;;;;;;;;;;:40;;;26511:38;;;;;;;26430:12;;26455:31;;26465:10;;26511:38;;;;;;;;-1:-1:-1;26567:4:0;26363:216;;;;:::o;2242:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2822:67::-;;;-1:-1:-1;;;;;2822:67:0;;:::o;2925:158::-;;;;;;;;;;;;-1:-1:-1;;;;;2925:158:0;;-1:-1:-1;2925:158:0;:::o;861:43::-;;;;:::o;2478:25::-;;;;:::o;8503:1392::-;8567:24;8580:10;8567:12;:24::i;:::-;8559:72;;;;-1:-1:-1;;;8559:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8642:28;8659:10;8642:16;:28::i;:::-;8747:10;8682;8736:22;;;:10;:22;;;;;:35;;8682:10;;8736:22;8759:11;;8736:35;;;;;;;;;;;;;;;;;;;8783:12;;;;8736:35;;-1:-1:-1;8783:12:0;;8779:1109;;8832:5;:17;;;8815:15;:34;;:82;;;;-1:-1:-1;8869:17:0;;;;8887:10;8869:28;8853:15;:44;8815:82;8812:183;;;8925:4;8919:10;;8812:183;;;8974:5;8968:11;;8812:183;9009:3;;;9053:12;;9009:59;;;-1:-1:-1;;;9009:59:0;;9026:10;9009:59;;;;9046:4;9009:59;;;;9066:1;9053:14;;;9009:59;;;;;-1:-1:-1;;;;;9009:3:0;;;;:16;;:59;;;;;;;;;;;;;;;;;:3;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9094:10:0;9083:22;;;;:10;9009:59;9083:22;;;;:35;;9126:4;;9083:22;9106:11;;9083:35;;;;;;;;;;;;;;;;;;;:42;;:47;;-1:-1:-1;;9083:47:0;;;;;;;;;;;9173:12;;9160:28;;9186:1;;9173:14;;9160:12;:28::i;:::-;9228:12;;9203:23;:39;;9241:1;9228:14;;;9203:39;;;;;9270:12;;-1:-1:-1;;;;;9270:12:0;-1:-1:-1;9260:23:0;;;:9;:23;;;;;;9145:43;;-1:-1:-1;;;9257:430:0;;9312:25;:40;;9349:3;9346:2;9339:9;;:13;;;9312:40;;;;;9389:12;;9402:20;;9379:59;;-1:-1:-1;;;;;9389:12:0;;;;9402:20;;;;;9349:3;9424:9;;:13;;9379:9;:59::i;:::-;9468:12;;9481:13;;9458:52;;-1:-1:-1;;;;;9468:12:0;;;;9481:13;9506:3;9503:2;9496:9;;:13;;9458:52;9257:430;;;9564:25;:33;;;;;;;9628:13;;9642:20;;9618:53;;-1:-1:-1;;;;;9628:13:0;;;;9642:20;9591:6;9618:9;:53::i;:::-;9705:5;9701:182;;9748:15;9730:17;;;:33;;;9818:11;9802:27;9782:19;;;:47;9848:14;;;:19;;-1:-1:-1;;9848:19:0;;;;;9701:182;8779:1109;;8503:1392;;;:::o;24450:1373::-;24536:12;;-1:-1:-1;;;;;24536:12:0;24522:10;:26;;;;:64;;-1:-1:-1;24566:20:0;;-1:-1:-1;;;;;24566:20:0;24552:10;:34;;24522:64;:95;;;;-1:-1:-1;24604:13:0;;-1:-1:-1;;;;;24604:13:0;24590:10;:27;;24522:95;24514:120;;;;;-1:-1:-1;;;24514:120:0;;;;;;;;;;;;-1:-1:-1;;;24514:120:0;;;;;;;;;;;;;;;24680:10;24645:12;24670:21;;;:9;:21;;;;;;:35;-1:-1:-1;24670:35:0;24662:75;;;;;-1:-1:-1;;;24662:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24800:10;;24782:3;24780:1;24767:14;;:18;;24822:11;24800:20;;;24799:34;24796:97;;;-1:-1:-1;24871:10:0;;24859:11;:22;24796:97;24906:11;;24903:863;;24959:22;;;25002:25;24959:22;25002:12;:25::i;:::-;25042;:38;;;;;;25095:23;:29;;;;;;;24997:30;-1:-1:-1;25144:25:0;25069:11;25144:12;:25::i;:::-;25205:13;;25139:30;;-1:-1:-1;25184:47:0;;25194:10;;-1:-1:-1;;;;;25205:13:0;25219:11;25184:9;:47::i;:::-;25246:3;;;:30;;;-1:-1:-1;;;25246:30:0;;25259:10;25246:30;;;;;;;;;;;;-1:-1:-1;;;;;25246:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25292:10:0;:21;;;;;;25328:27;25334:10;25304:9;25328:5;:27::i;:::-;25375:42;;;;;;;;25403:1;;25384:10;;25375:42;;;;;;;;;24903:863;;;;25464:26;25477:12;25464;:26::i;:::-;25505:25;:39;;;;;;25559:23;:29;;;;;;;25459:31;-1:-1:-1;25608:26:0;25532:12;25608;:26::i;:::-;25670:13;;25603:31;;-1:-1:-1;25649:48:0;;25659:10;;-1:-1:-1;;;;;25670:13:0;25684:12;25649:9;:48::i;:::-;25712:3;;;:30;;;-1:-1:-1;;;25712:30:0;;25725:10;25712:30;;;;;;;;;;;;-1:-1:-1;;;;;25712:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24903:863:0;25781:34;;;;;;;;;;;;;;25786:10;;25781:34;;;;;;;;24450:1373;;;:::o;26589:274::-;-1:-1:-1;;;;;26712:16:0;;26669:12;26712:16;;;:9;:16;;;;;;;;26729:10;26712:28;;;;;;;;26702:38;;;26694:47;;;;;;26752:32;26762:10;26773:3;26777:6;26752:9;:32::i;:::-;-1:-1:-1;;;;;;26795:16:0;;;;;;:9;:16;;;;;;;;26812:10;26795:28;;;;;;;:38;;;;;;;-1:-1:-1;26589:274:0;;;;;:::o;7988:509::-;8045:14;8060:21;8073:7;8060:12;:21::i;:::-;8113:20;;8045:36;;-1:-1:-1;8092:49:0;;8102:10;;-1:-1:-1;;;;;8113:20:0;8045:36;8092:9;:49::i;:::-;8205:10;8199:17;;;;:5;:17;;;;;:29;;;8168:1;8160:9;;;;8188:40;;;;;:65;;;2323:5;8232:7;:21;;8188:65;:92;;;;-1:-1:-1;2323:5:0;8257:7;:18;:23;8188:92;:117;;;;;2372:7;8284;:21;;8188:117;8180:143;;;;;-1:-1:-1;;;8180:143:0;;;;;;;;;;;;-1:-1:-1;;;8180:143:0;;;;;;;;;;;;;;;8342:24;8355:10;8342:12;:24::i;:::-;8334:72;;;;-1:-1:-1;;;8334:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8417:28;8434:10;8417:16;:28::i;:::-;8458:31;8470:10;8481:7;8458:11;:31::i;:::-;7988:509;;:::o;930:26::-;;;;;;:::o;3147:::-;;;;:::o;21840:402::-;21903:9;21899:333;-1:-1:-1;;;;;21922:17:0;;;;;;:10;:17;;;;;:24;21918:28;;21899:333;;;-1:-1:-1;;;;;21990:17:0;;21964:23;21990:17;;;:10;:17;;;;;:20;;22008:1;;21990:20;;;;;;;;;;;;;;;;;;;22029:12;;;;21990:20;;-1:-1:-1;22029:12:0;;22028:13;:31;;;;-1:-1:-1;22045:14:0;;;;;;;;;22028:31;22025:196;;;22106:17;;;;22124:10;22106:28;22090:15;:44;22087:120;;;22167:14;;;:20;;-1:-1:-1;;22167:20:0;;;22087:120;-1:-1:-1;21948:3:0;;21899:333;;6451:121;6523:41;6536:10;6548:15;6523:12;:41::i;:::-;6451:121;:::o;2896:22::-;;;-1:-1:-1;;;;;2896:22:0;;:::o;21143:691::-;21196:7;21220:23;21237:5;21220:16;:23::i;:::-;-1:-1:-1;;;;;21261:16:0;;;;;;:9;:16;;;;;:21;:24;;:52;;-1:-1:-1;;;;;;21289:16:0;;;;;;:9;:16;;;;;:21;21312:1;21289:24;21261:52;21258:568;;;-1:-1:-1;;;;;;21371:19:0;;;;;;:12;:19;;;;;:30;;;;21336:32;;21369:1;21336:34;:65;21328:74;;21258:568;-1:-1:-1;;;;;21421:16:0;;;;;;:9;:16;;;;;:21;21444:1;21421:24;;:52;;-1:-1:-1;;;;;;21449:16:0;;;;;;:9;:16;;;;;:21;21472:1;21449:24;21421:52;21418:408;;;-1:-1:-1;;;;;;21531:19:0;;;;;;:12;:19;;;;;:30;;;;21496:32;;21529:1;21496:34;:65;21488:74;;21418:408;-1:-1:-1;;;;;21581:16:0;;;;;;:9;:16;;;;;:21;21604:1;21581:24;;:52;;-1:-1:-1;;;;;;21609:16:0;;;;;;:9;:16;;;;;:21;21632:1;21609:24;21581:52;21578:248;;;-1:-1:-1;;;;;;21691:19:0;;;;;;:12;:19;;;;;:30;;;;21656:32;;21689:1;21656:34;:65;21648:74;;21578:248;-1:-1:-1;;;;;;21795:19:0;;;;;;:12;:19;;;;;:30;;;;21760:32;;21793:1;21760:34;:65;21752:74;;2433:38;;;;:::o;2386:40::-;;;;:::o;22253:110::-;-1:-1:-1;;;;;22335:11:0;22310:4;22335:11;;;:5;:11;;;;;:14;:19;;;22253:110::o;2510:61::-;;;-1:-1:-1;;;;;2510:61:0;;:::o;20868:126::-;20929:4;20982;20971:10;:8;:10::i;:::-;20958:12;:23;:28;;;;2186:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:49:0;;-1:-1:-1;2186:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2744:71::-;;;-1:-1:-1;;;;;2744:71:0;;:::o;4306:44::-;;;;;;;;;;;;;:::o;19280:561::-;19337:7;;;;;;19455:302;-1:-1:-1;;;;;19478:12:0;;;;;;:5;:12;;;;;:22;;:29;19474:33;;19455:302;;;-1:-1:-1;;;;;19557:12:0;;19528:21;19557:12;;;19551:5;19557:12;;;;;;;:22;;:25;;19528:21;;19557:22;19580:1;;19557:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19557:25:0;19551:32;;;;;;;;;;;;:42;;;19622:24;;;19557:25;19622:24;;;;19551:44;;-1:-1:-1;19664:23:0;;;19661:85;;;19717:13;19707:23;;19661:85;-1:-1:-1;19509:3:0;;19455:302;;;-1:-1:-1;19789:7:0;;-1:-1:-1;;19779:17:0;;;;-1:-1:-1;19280:561:0;;;:::o;19847:357::-;19917:7;;;19977:190;-1:-1:-1;;;;;20000:12:0;;;;;;:5;:12;;;;;:22;;:29;19996:33;;19977:190;;;-1:-1:-1;;;;;20063:12:0;;20053:36;20063:12;;;:5;:12;;;;;:22;;:25;;20098:5;;20053:9;;:36;;20086:1;;20063:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20063:25:0;20053:36;;;;;;;;;;;;:41;:50;20050:106;;20139:1;20123:17;;;;20050:106;20031:3;;19977:190;;;-1:-1:-1;20184:12:0;19847:357;-1:-1:-1;;;19847:357:0:o;2663:70::-;;;-1:-1:-1;;;;;2663:70:0;;:::o;826:28::-;;;;;;;;;;;;;;-1:-1:-1;;826:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27542:333;27627:7;;-1:-1:-1;;;;;27627:7:0;27615:10;:19;27607:50;;;;;-1:-1:-1;;;27607:50:0;;;;;;;;;;;;-1:-1:-1;;;27607:50:0;;;;;;;;;;;;;;;27694:17;;27712:9;27694:27;27677:15;:45;27669:86;;;;;-1:-1:-1;;;27669:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27783:1;27775:7;:9;27767:54;;;;;-1:-1:-1;;;27767:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27832:3;;;:33;;;-1:-1:-1;;;27832:33:0;;27845:10;27832:33;;;;;;;;;;;;-1:-1:-1;;;;;27832:3:0;;;;:12;;:33;;;;;;;;;;;;;;;;;:3;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:78;;;-1:-1:-1;;;;;2578:78:0;;:::o;2032:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2032:37:0;;;;;;;;;;;;;;;;;;;;;;:::o;25829:281::-;25939:12;;25892;;-1:-1:-1;;;;;25939:12:0;25925:10;:26;;;;:64;;-1:-1:-1;25969:20:0;;-1:-1:-1;;;;;25969:20:0;25955:10;:34;;25925:64;:95;;;;-1:-1:-1;26007:13:0;;-1:-1:-1;;;;;26007:13:0;25993:10;:27;;25925:95;25917:120;;;;;-1:-1:-1;;;25917:120:0;;;;;;;;;;;;-1:-1:-1;;;25917:120:0;;;;;;;;;;;;;;;26048:32;26058:10;26069:3;26073:6;26048:9;:32::i;:::-;-1:-1:-1;26098:4:0;25829:281;;;;:::o;7525:457::-;7579:3;;;:50;;;-1:-1:-1;;;7579:50:0;;7596:10;7579:50;;;;7615:4;7579:50;;;;;;;;;;;;-1:-1:-1;;;;;7579:3:0;;;;:16;;:50;;;;;;;;;;;;;;;;;:3;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7693:10:0;7687:17;;;;:5;7579:50;7687:17;;;;:29;;;7656:1;7648:9;;;;7676:40;;;;;:65;;;2323:5;7720:7;:21;;7676:65;:92;;;;-1:-1:-1;2323:5:0;7745:7;:18;:23;7676:92;:117;;;;;2372:7;7772;:21;;7676:117;7668:143;;;;;-1:-1:-1;;;7668:143:0;;;;;;;;;;;;-1:-1:-1;;;7668:143:0;;;;;;;;;;;;;;;7830:24;7843:10;7830:12;:24::i;:::-;7822:72;;;;-1:-1:-1;;;7822:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7905:28;7922:10;7905:16;:28::i;:::-;7946;7955:10;7966:7;7946:8;:28::i;23410:1034::-;23506:10;23469:23;23495:22;;;:10;:22;;;;;:35;;23518:11;;23495:35;;;;;;;;;;;;;;;;23469:61;;23538:5;:14;;;;;;;;;;;;:30;;;;-1:-1:-1;23556:12:0;;;;;;23538:30;:69;;;;;23592:15;23572:5;:19;;;:35;23538:69;23535:902;;;23624:19;23645:37;23659:10;23670:11;23645:13;:37::i;:::-;23623:59;;23698:13;23712:10;:8;:10::i;:::-;23737;23731:17;;;;:5;:17;;;;;;;;:24;;;:38;;;;;;23778:29;;:43;;;;;;23836:12;:24;;;;;;-1:-1:-1;23836:35:0;;;:49;;;;;;23905:50;;;;;;;;;;;;;;;;;23698:24;;-1:-1:-1;23737:10:0;;;;23905:50;;;;;;;;;;24040:12;;;;;24018:19;;;:47;;24039:26;;;24018:47;;;-1:-1:-1;24084:15:0;;;;;;24114:18;;:31;;;;;;24180:10;-1:-1:-1;24174:17:0;;;:5;:17;;;;;:31;;:44;;;;;;24243:20;;24233:65;;-1:-1:-1;;;;;24243:20:0;;;;24292:5;24287:4;24275:16;;24292:5;24275:22;;;24233:65;24313:52;24336:10;24347:11;24359:5;24313:22;:52::i;:::-;24399:32;;;;;;;;24408:10;;24399:32;;;;;;;;;;23535:902;;23410:1034;;:::o;2076:45::-;;;;;;;;;;;;;:::o;4357:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22373:120::-;-1:-1:-1;;;;;22461:17:0;22434:7;22461:17;;;:10;:17;;;;;:24;;22373:120::o;769:17::-;;;-1:-1:-1;;;;;769:17:0;;:::o;21006:131::-;21046:4;21104:25;;21075:23;;21099:4;21075:28;:54;;;;;;21068:61;;21006:131;:::o;2128:51::-;;;;;;;;;;;;;;;;;;;:::o;26875:199::-;26972:12;;26937:4;;-1:-1:-1;;;;;26972:12:0;26958:10;:26;26954:58;;26987:23;;;-1:-1:-1;;;26987:23:0;;;;;;;;;;;;-1:-1:-1;;;26987:23:0;;;;;;;;;;;;;;26954:58;27022:22;27028:7;27037:6;27022:5;:22::i;26116:241::-;-1:-1:-1;;;;;26206:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;26206:26:0;26198:35;;;;;;-1:-1:-1;;;;;26244:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;26281:14;;;;;;;;;;:24;;;;;;26321:28;;;;;;;26281:14;;26321:28;;;;;;;;;;;26116:241;;;:::o;27080:456::-;-1:-1:-1;;;;;27170:21:0;;27162:67;;;;-1:-1:-1;;;27162:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27265:18:0;;27240:22;27265:18;;;:9;:18;;;;;;27302:24;;;;27294:71;;;;-1:-1:-1;;;27294:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27397:6;27384:11;;:19;;27376:57;;;;;-1:-1:-1;;;27376:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27444:18:0;;;;;;;:9;:18;;;;;27465:23;;;;27444:44;;;27507:11;:21;;;;;;;;27080:456::o;11770:1410::-;-1:-1:-1;;;;;11890:18:0;;;11865:23;11890:18;;;:5;:18;;;;;;;;:27;;;;;;;11928:22;;;;;;:37;;:46;;;;;;11996:18;;;;:31;;;;;11993:301;;-1:-1:-1;;;;;12064:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;12117:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12117:50:0;;;;;;;;;;;12182:28;;12197:10;;12182:14;:28::i;:::-;11993:301;;;12254:28;12269:10;12280:1;12254:14;:28::i;:::-;-1:-1:-1;;;;;12304:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;12357:12;:25;;;;:48;;;;;;12432:10;:8;:10::i;:::-;12418:24;-1:-1:-1;12461:14:0;12476:23;12497:1;12489:7;:9;;12476:23;12461:38;;12543:7;12512:5;:18;12518:11;-1:-1:-1;;;;;12512:18:0;-1:-1:-1;;;;;12512:18:0;;;;;;;;;;;;:30;;:38;;;;12561:10;:23;12572:11;-1:-1:-1;;;;;12561:23:0;-1:-1:-1;;;;;12561:23:0;;;;;;;;;;;;12590:242;;;;;;;;12614:7;12590:242;;;;12623:1;12590:242;;;;12639:15;12590:242;;;;3261:4;12686:2;:11;12670:15;:27;12590:242;;;;12713:15;12590:242;;;;12743:5;12590:242;;;;;;12763:4;12590:242;;;;;;12782:5;12590:242;;;;;;12788:3;12590:242;;;;3261:4;12808:2;:11;12792:15;:27;12590:242;;;;12820:1;12590:242;;;12561:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12848:6;12844:134;12859:1;12857;:3;12844:134;;;12900:20;;12890:75;;-1:-1:-1;;;;;12900:20:0;12921:9;12931:1;12921:12;;;;;;;;;-1:-1:-1;;;;;12921:12:0;12959:5;12944:11;12956:1;12944:14;;;;;;;;;12935:6;12942:1;12935:8;:23;:29;;;;12890:75;12861:3;;12844:134;;;;12989:49;13012:11;13024:7;13032:5;12989:22;:49::i;:::-;13050:51;13075:11;13087:7;13095:5;13050:24;:51::i;:::-;13125:37;;;;;;13160:1;13153:8;;13125:37;;;;;;-1:-1:-1;;;;;13125:37:0;;;;;;;;;;;11770:1410;;;;;:::o;6578:941::-;6674:25;6687:11;6674:12;:25::i;:::-;6673:26;6665:50;;;;;-1:-1:-1;;;6665:50:0;;;;;;;;;;;;-1:-1:-1;;;6665:50:0;;;;;;;;;;;;;;;6734:29;6747:15;6734:12;:29::i;:::-;6726:61;;;;;-1:-1:-1;;;6726:61:0;;;;;;;;;;;;-1:-1:-1;;;6726:61:0;;;;;;;;;;;;;;;6798:16;;:::i;:::-;6817:455;;;;;;;;6841:10;;6817:455;;;;6888:15;-1:-1:-1;;;;;6817:455:0;;;;;6933:1;6817:455;;;;6960:1;6817:455;;;;7000:1;6986:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6986:16:0;;6817:455;;;;7061:1;6817:455;;;;7089:1;6817:455;;;;7032:1;6817:455;;;;7112:1;6817:455;;;;7140:1;6817:455;;;;7170:1;6817:455;;;;7201:1;6817:455;;;;7229:1;6817:455;;;;7259:1;6817:455;;;6798:474;;7312:4;7291:5;:18;7297:11;-1:-1:-1;;;;;7291:18:0;-1:-1:-1;;;;;7291:18:0;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7291:25:0;;;;;-1:-1:-1;;;;;7291:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7291:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7327:18:0;;;-1:-1:-1;7327:18:0;;;;;;;;;;;:27;;;;:45;;-1:-1:-1;;;;;;7327:45:0;;;;;;;;;7383:10;:12;;;;;;;7462:21;7485:22;;;;;;;:25;7419:92;;;;;;;7462:21;;7419:92;;;;;;;;;6578:941;;;:::o;9906:1858::-;-1:-1:-1;;;;;10023:18:0;;;9998:23;10023:18;;;:5;:18;;;;;;;;:27;;;;;;;10061:22;;;;;;:37;;:46;;;;;;10129:18;;;;:31;;;;;10126:313;;-1:-1:-1;;;;;10197:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;10250:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10250:50:0;;;;;;;;;;;10327:28;;10342:10;;10327:14;:28::i;:::-;10126:313;;;10399:28;10414:10;10425:1;10399:14;:28::i;:::-;-1:-1:-1;;;;;10449:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;10502:12;:25;;;;:48;;;;;;10575:10;:8;:10::i;:::-;10561:24;-1:-1:-1;10596:14:0;10611:23;10632:1;10624:7;:9;;10611:23;10645;:34;;10678:1;10670:9;;10645:34;;;10703:12;;-1:-1:-1;;;;;10703:12:0;-1:-1:-1;10693:23:0;;;:9;:23;;;;;;10596:38;;-1:-1:-1;;;10690:398:0;;10741:25;:40;;10778:3;10775:2;10768:9;;:13;;;10741:40;;;;;10814:12;;10827:20;;10804:59;;-1:-1:-1;;;;;10814:12:0;;;;10827:20;;;;;10778:3;10849:9;;:13;;10804:59;10889:12;;10902:13;;10879:52;;-1:-1:-1;;;;;10889:12:0;;;;10902:13;10927:3;10924:2;10917:9;;:13;;10879:52;10690:398;;;10973:25;:33;;;;;;;11033:13;;11047:20;;11023:53;;-1:-1:-1;;;;;11033:13:0;;;;11047:20;11000:6;11023:9;:53::i;:::-;11129:7;11098:5;:18;11104:11;-1:-1:-1;;;;;11098:18:0;-1:-1:-1;;;;;11098:18:0;;;;;;;;;;;;:30;;:38;;;;11147:10;:23;11158:11;-1:-1:-1;;;;;11147:23:0;-1:-1:-1;;;;;11147:23:0;;;;;;;;;;;;11176:241;;;;;;;;11200:7;11176:241;;;;11209:1;11176:241;;;;11225:15;11176:241;;;;3261:4;11272:2;:11;11256:15;:27;11176:241;;;;11299:15;11176:241;;;;11329:5;11176:241;;;;;;11349:4;11176:241;;;;;;11368:4;11176:241;;;;;;11373:3;11176:241;;;;3261:4;11393:2;:11;11377:15;:27;11176:241;;;;11405:1;11176:241;;;11147:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11433:6;11429:134;11444:1;11442;:3;11429:134;;;11485:20;;11475:75;;-1:-1:-1;;;;;11485:20:0;11506:9;11516:1;11506:12;;;;;;11475:75;11446:3;;11429:134;;22501:903;-1:-1:-1;;;;;22649:17:0;;22572:7;22649:17;;;:10;:17;;;;;:30;;22572:7;;;;22667:11;;22649:30;;;;;;;;;;;;;;;;22623:56;;22690:25;22718:4;-1:-1:-1;;;;;22718:16:0;;22735:5;22718:23;;;;;;;;;;;;;-1:-1:-1;;;;;22718:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22718:23:0;;-1:-1:-1;22768:19:0;;22765:612;;22813:11;3261:4;22848:5;:17;;;22826:5;:19;;;:39;22825:57;;;;;;22813:69;;22907:3;22900:6;:10;22897:38;;;-1:-1:-1;22932:3:0;22897:38;22950:19;23025:5;:18;;;23018:5;23009:6;22985:5;:23;;;22972:5;:12;;;:36;:43;:51;;;;;;22971:72;22950:93;;23080:11;23062:17;:29;23059:127;;;-1:-1:-1;23125:17:0;23059:127;23203:13;;23200:85;;23258:11;23251:18;;23200:85;22765:612;;;;;23346:14;;;:19;;-1:-1:-1;;23346:19:0;;;;;22765:612;-1:-1:-1;23389:6:0;;22501:903;-1:-1:-1;;;;22501:903:0:o;13186:1426::-;-1:-1:-1;;;;;13300:12:0;;;13283:14;13300:12;;;:5;:12;;;;;:21;;;;;;;13332:1273;3218:2;13349:1;:14;;;13332:1273;;;-1:-1:-1;;;;;13387:20:0;;;13384:1210;;13454:9;13464:1;13454:12;;;;;;;;;;;-1:-1:-1;;;;;13430:17:0;;;;;;:9;:17;;;;;:22;:36;13427:1042;;-1:-1:-1;;;;;13511:13:0;;13538:1;13511:13;;;:5;:13;;;;;;;;:26;;:28;13508:942;;13613:14;13653:5;13636:13;13650:1;13636:16;;;;;;;;;;;13628:7;:24;:30;;;;;;13613:45;;13709:25;13735:4;-1:-1:-1;;;;;13735:16:0;;13752:6;13735:24;;;;;;;;;;;;;-1:-1:-1;;;;;13735:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13735:24:0;;-1:-1:-1;13791:19:0;;13788:639;;13889:6;13871:17;:24;13868:143;;;13938:17;13931:24;;13868:143;-1:-1:-1;;;;;14041:13:0;;;;;;;:5;:13;;;;;;;;:25;;;:34;;;;;;14129:25;;:34;;;;;;14195:12;:20;;;;;-1:-1:-1;14195:31:0;:40;;;;;;14276:20;;14266:56;;14276:20;14047:6;14316:5;14311:4;14304:11;;14316:5;14304:17;;;14266:56;14358:40;;;;;;;14393:1;14391:3;;14358:40;;;;;14396:1;14358:40;;;;;;-1:-1:-1;;;;;14358:40:0;;;;;;;;;;;;;;;;;13788:639;13508:942;;;-1:-1:-1;;;;;14496:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;13384:1210;;;14573:5;;13384:1210;13365:3;;13332:1273;;;;13186:1426;;;;:::o;20210:509::-;-1:-1:-1;;;;;20296:12:0;;;20279:14;20296:12;;;:5;:12;;;;;:21;;;;;;;20328:384;3218:2;20347:1;:14;20328:384;;;-1:-1:-1;;;;;20385:20:0;;;20382:319;;20428:5;20435:1;20428:8;20425:85;;;-1:-1:-1;;;;;20485:13:0;;;;;;:5;:13;;;;;:23;;;;20509:1;20485:25;20459:51;;20425:85;20529:20;20542:6;20529:12;:20::i;:::-;20581:3;;-1:-1:-1;;;;;20571:13:0;;;20581:3;;20571:13;20568:23;;;20586:5;;20568:23;-1:-1:-1;;;;;20619:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;20382:319;;;20680:5;;20382:319;20363:3;;20328:384;;14618:2444;-1:-1:-1;;;;;14734:12:0;;;14717:14;14734:12;;;:5;:12;;;;;:21;;;;;;;14717:14;;;;14893:2162;14914:2;14910:1;:6;;;14893:2162;;;-1:-1:-1;;;;;14952:20:0;;;14949:2095;;-1:-1:-1;;;;;14995:17:0;;;;;;:9;:17;;;;;:22;15019:1;14995:25;;:54;;-1:-1:-1;;;;;;15024:17:0;;;;;;:9;:17;;;;;;;;:22;:25;14995:54;14992:1913;;;15077:13;15074:798;;-1:-1:-1;;;;;15143:17:0;;;;;;:9;:17;;;;;;;;:22;:25;15140:418;;;15236:1;15220:17;;15286:1;15268:19;;15329:1;15318:12;;15140:418;;;15436:1;15420:17;;15486:1;15468:19;;15529:1;15518:12;;15140:418;15074:798;;;-1:-1:-1;;;;;15638:17:0;;;;;;:9;:17;;;;;:22;:34;;15635:214;;;15740:17;15724:33;;15796:1;15788:9;;15635:214;15897:17;;15894:992;;16105:24;;;-1:-1:-1;;;16105:24:0;;-1:-1:-1;;;;;16105:24:0;;;;;;;;15942:14;;15981:3;15957:23;;;:27;;15942:14;;16105:4;;:16;;:24;;;;;;;;;;;;;;15942:14;16105:4;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16105:24:0;;-1:-1:-1;16161:19:0;;16158:641;;16259:6;16241:17;:24;16238:143;;;16308:17;16301:24;;16238:143;-1:-1:-1;;;;;16411:13:0;;;;;;;:5;:13;;;;;;;;:27;;;:36;;;;;;16501:25;;:34;;;;;;16567:12;:20;;;;;-1:-1:-1;16567:31:0;:40;;;;;;16648:20;;16638:56;;16648:20;16417:6;16688:5;16683:4;16676:11;;16688:5;16676:17;;;16638:56;16730:40;;;;;;;16765:1;16763:3;;16730:40;;;;;16768:1;16730:40;;;;;;-1:-1:-1;;;;;16730:40:0;;;;;;;;;;;;;;;;;16158:641;16828:7;16837:1;16828:10;:27;;;-1:-1:-1;16852:3:0;;-1:-1:-1;;;;;16842:13:0;;;16852:3;;16842:13;16828:27;16825:37;;;16857:5;;;;16825:37;15894:992;;;-1:-1:-1;;;;;16932:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;14949:2095;;;17023:5;;14949:2095;14918:3;;14893:2162;;;;14618:2444;;;;;;;;:::o;18503:771::-;-1:-1:-1;;;;;18590:12:0;;18567:19;18590:12;;;:5;:12;;;;;;;;:26;;;;18653:27;;;;;18710:9;:16;;;;;:21;18758:1;18745:14;;;;;:31;;;18775:1;18763:11;:13;18745:31;18742:525;;;18832:1;18820:13;;18804;18872:19;18885:5;18872:12;:19::i;:::-;18848:43;;;18906:17;18924:23;18939:5;18945:1;18924:14;:23::i;:::-;18979:19;;;;:9;:19;;;;;:32;;;18906:41;;-1:-1:-1;18965:46:0;;;;;:91;;-1:-1:-1;19026:19:0;;;;:9;:19;;;;;:30;;;19015:41;;;18965:91;18962:162;;;-1:-1:-1;;;;;19076:16:0;;;;;;:9;:16;;;;;:32;;;18962:162;18742:525;;;;;;19170:1;19157:11;:14;;:41;;;;;19191:7;19175:14;:23;;19157:41;:59;;;;-1:-1:-1;19202:14:0;;19157:59;19154:113;;;-1:-1:-1;;;;;;;;19232:16:0;;;;;:9;:16;;;;;19254:1;19232:23;;18503:771::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://f2c3d1f8c3991b6013f246609f0d155881f3d56862e4297bfef970d015ab0874
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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