Amoy Testnet

Token

DWC (DWC)
ERC-20

Overview

Max Total Supply

32,500,000 DWC

Holders

11

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
145.640611726181594137 DWC
0x53888f004f49e78a41ace9261104956fe8c1199a
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-07
*/

// 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=10*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,2
        ));
        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,2
        ));
        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,2
        ));
        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); 
            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;
            emit Transaction(msg.sender,msg.sender,dailypayout,1,1); 
			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"}]

60c0604052600360808190526244574360e81b60a090815262000026916001919062000b6f565b506040805180820190915260038082526244574360e81b6020909201918252620000539160029162000b6f565b506a1ae22487c1042af080000060039081556004805460ff19166012179055600d80546001600160a01b0319908116739ed2cfa3ebde315fdbfc60859f093e07a52d131f17909155600e80548216733bb195603e1ec562cfe406047b2718b4226cfa2a179055600f80548216735427f55e590f70be2967a891ea119e66c20262ff17905560108054821673d9845cee17f9aa07c507b6ad55eb93a9ad2221bc90811790915560118054909216179055604080516060810182527353888f004f49e78a41ace9261104956fe8c1199a81527391d1ebdeba71a59661c914c849f9df45c812cfaf602082015273fecc9357583a2f0b8dc62335447e62f5a882477a9181019190915262000168916013919062000bf4565b506040805160a08101825261012c8152603260208201819052918101829052606081018290526080810191909152620001a690601890600562000c4d565b506002601d556001601f55604080516102a0810182526101f4815260c86020808301919091526064928201929092526032606082015260196080820181905260a0820152601460c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200026e9190601562000c84565b50604080516102a0810182526103e88152606460208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526032610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200032a90603590601562000c84565b50604080516102a08101825260008152600160208201819052918101919091526002606082018190526080820152600360a0820181905260c0820181905260e08201526004610100820181905261012082015260056101408201819052610160820181905261018082018190526101a082018190526101c082015260066101e082018190526102008201819052610220820181905261024082018190526102608201819052610280820152620003e590604a90601562000cba565b50348015620003f357600080fd5b5060405162003f7538038062003f75833981810160405260208110156200041957600080fd5b5051601280546001600160a01b03199081163317909155600080546001600160a01b0380851691909316178155600f805483168252605f6020908152604080842069152d02c7e14af680000090819055600e54861685528185206a1a60f85d30f2ae7740000090556010548616855281852069021e19e0c9bab24000009055601154861685528185206969e10de76676d0800000905592548151938452905194169360008051602062003f558339815191529281900390910190a3600e54604080516a1a60f85d30f2ae77400000815290516001600160a01b039092169160009160008051602062003f55833981519152919081900360200190a36010546040805169021e19e0c9bab2400000815290516001600160a01b039092169160009160008051602062003f55833981519152919081900360200190a3601154604080516969e10de76676d0800000815290516001600160a01b039092169160009160008051602062003f55833981519152919081900360200190a36200059c62000cf0565b604051806101c001604052806001815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160401b0381118015620005e557600080fd5b5060405190808252806020026020018201604052801562000610578160200160208202803683370190505b508152681b1ae4d6e2ef500000602080830182905260408084019290925260006060808501829052608080860183905260a0860183905260c0860183905260e086018390526101008601839052610120909501829052600d546001600160a01b039081168352600584529184902086518155868401516001820180546001600160a01b031916919094161790925592850151600282015591840151600383015591830151805193945084939192620006d19260048501929091019062000d68565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01559050506006806000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550681b1ae4d6e2ef50000060076000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000018190555060086000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020604051806101600160405280681b1ae4d6e2ef500000815260200160008152602001428152602001610258600f0242018152602001428152602001600015158152602001600115158152602001600115158152602001606481526020016102586014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff02191690831515021790555061010082015181600601556101208201518160070155610140820151816008015550506040518060600160405280600181526020016005815260200160008152506009600060018152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060028152602001600281526020016023815250600960006002815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806003815260200160048152602001605081525060096000600381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506040518060600160405280600481526020016006815260200161015e8152506009600060048152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060058152602001600881526020016103e88152506009600060058152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060068152602001600a8152602001611388815250600960006006815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505069021e19e0c9bab2400000600a8190555069021e19e0c9bab2400000600b8190555042601e81905550505062000df7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000bb257805160ff191683800117855562000be2565b8280016001018555821562000be2579182015b8281111562000be257825182559160200191906001019062000bc5565b5062000bf092915062000dbf565b5090565b826005810192821562000c3f579160200282015b8281111562000c3f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c08565b5062000bf092915062000dd6565b826005810192821562000be2579160200282015b8281111562000be2578251829061ffff1690559160200191906001019062000c61565b826015810192821562000be2579160200282018281111562000be2578251829061ffff1690559160200191906001019062000c61565b826015810192821562000be2579160200282015b8281111562000be2578251829060ff1690559160200191906001019062000cce565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805482825590600052602060002090810192821562000c3f579160200282018281111562000c3f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c08565b5b8082111562000bf0576000815560010162000dc0565b5b8082111562000bf05780546001600160a01b031916815560010162000dd7565b61314e8062000e076000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107e3578063de6b8a2e14610811578063f4b9fa7514610837578063f571545b1461083f578063fa96bd9c14610847578063fcd3533c1461086d57610269565b8063a87430ba146106c4578063a9059cbb14610757578063b6b55f2514610783578063b842f3b6146107a0578063d9f01b7d146107bd57610269565b806371c757ec1161011557806371c757ec146106245780637fe0c526146106635780639351a77a1461068f57806395d89b41146106975780639e1c7a9f1461069f578063a8365d16146106bc57610269565b8063517999bc1461054b57806358cbcb7c1461055357806360a1cbd714610570578063665a11ca146105f657806370a08231146105fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e486146104c157806345653a6d146104e75780634bdf3bf2146104ef5780634c0cc366146105155780634d79348a1461051d578063509222cd1461052557610269565b806323b872dd146104225780632f05772914610458578063313ce56714610475578063348d44871461049357806338c87f1a1461049b57610269565b806310d931011161023157806310d93101146103b957806318160ddd146103d657806320bdc7c7146103de578063222f6182146103e65780632280b7a81461040557610269565b806302fd7a031461026e57806306fdde031461029d578063095ea7b31461031a57806309be84681461035a5780630f32237314610395575b600080fd5b61028b6004803603602081101561028457600080fd5b5035610899565b60408051918252519081900360200190f35b6102a56108be565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103466004803603604081101561033057600080fd5b506001600160a01b03813516906020013561094b565b604080519115158252519081900360200190f35b6103776004803603602081101561037057600080fd5b50356109b1565b60408051938452602084019290925282820152519081900360600190f35b61039d6109d2565b604080516001600160a01b039092168252519081900360200190f35b61039d600480360360208110156103cf57600080fd5b50356109e1565b61028b6109fe565b61028b610a04565b610403600480360360208110156103fc57600080fd5b5035610a0a565b005b6104036004803603602081101561041b57600080fd5b5035610c86565b6103466004803603606081101561043857600080fd5b506001600160a01b03813581169160208101359091169060400135610fb5565b6104036004803603602081101561046e57600080fd5b5035611024565b61047d611142565b6040805160ff9092168252519081900360200190f35b61028b61114b565b610403600480360360208110156104b157600080fd5b50356001600160a01b0316611151565b610403600480360360208110156104d757600080fd5b50356001600160a01b03166111f5565b61039d611202565b61028b6004803603602081101561050557600080fd5b50356001600160a01b0316611211565b61028b61138a565b61028b611390565b6103466004803603602081101561053b57600080fd5b50356001600160a01b0316611396565b61039d6113b3565b61028b6004803603602081101561056957600080fd5b50356113c2565b61059c6004803603604081101561058657600080fd5b506001600160a01b0381351690602001356113de565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b61039d61145a565b61028b6004803603602081101561061457600080fd5b50356001600160a01b0316611469565b61064a6004803603602081101561063a57600080fd5b50356001600160a01b031661147b565b6040805192835260208301919091528051918290030190f35b61028b6004803603604081101561067957600080fd5b506001600160a01b03813516906020013561152a565b61039d6115c1565b6102a56115d0565b610403600480360360208110156106b557600080fd5b5035611628565b61039d6117ad565b6106ea600480360360208110156106da57600080fd5b50356001600160a01b03166117bc565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b6103466004803603604081101561076d57600080fd5b506001600160a01b03813516906020013561182d565b6104036004803603602081101561079957600080fd5b50356118c2565b610403600480360360208110156107b657600080fd5b5035611a3d565b61028b600480360360208110156107d357600080fd5b50356001600160a01b0316611bca565b61028b600480360360408110156107f957600080fd5b506001600160a01b0381358116916020013516611bdc565b61028b6004803603602081101561082757600080fd5b50356001600160a01b0316611bf9565b61039d611c14565b61028b611c23565b61064a6004803603602081101561085d57600080fd5b50356001600160a01b0316611c42565b6103466004803603604081101561088357600080fd5b50803590602001356001600160a01b0316611c5b565b60006108a3611c23565b82670de0b6b3a764000002816108b557fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109ee57fe5b01546001600160a01b0316905081565b60035481565b600c5481565b610a1333611396565b610a4e5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b610a5733611151565b336000908152600860205260408120805482919084908110610a7557fe5b60009182526020909120600990910201600581015490915060ff16610c815780600301544210158015610aaf575060038101546104b00142105b15610abd5760019150610ac2565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b505033600090815260086020526040902080546001919085908110610b6c57fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b9f906002905b04610899565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c3157600a80546064605a84028190049091018255600f54600e54610c0a936001600160a01b039283169392909116919085025b04611cb7565b600f54601054610c2c916001600160a01b0390811691166064605a8502610c04565b610c57565b600a80548290039055601054600e54610c57916001600160a01b03908116911683611cb7565b82610c7f574260048301819055612ee001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610cac5750600e546001600160a01b03163314155b8015610cc357506010546001600160a01b03163314155b610d04576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d68576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d9a5750600c546a084595161401484a000000035b8015610eb457808303610dac816113c2565b600a805483019055600b805482900390559250610dc8816113c2565b601054909350610de39033906001600160a01b031683611cb7565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5050600c805483019055610e763383611d48565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f76565b610ebd836113c2565b600a805485019055600b805482900390559150610ed9836113c2565b601054909250610ef49033906001600160a01b031685611cb7565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050506040513d6020811015610f7357600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fe557600080fd5b610ff0338484611cb7565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061102f82610899565b600e5490915061104a9033906001600160a01b031683611cb7565b33600090815260056020526040902060060154600290920291821080159061107b57506802b5e3af16b18800008210155b801561109057506802b5e3af16b18800008206155b80156110a6575069010f0cf064dd592000008211155b6110e7576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110f033611396565b61112b5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b61113433611151565b61113e3383611e68565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b03821660009081526008602052604090205481101561113e576001600160a01b038216600090815260086020526040812080548390811061119857fe5b60009182526020909120600990910201600581015490915060ff161580156111c957506005810154610100900460ff165b156111ec5760038101546104b0014211156111ec5760058101805461ff00191690555b50600101611154565b6111ff33826121b2565b50565b6012546001600160a01b031681565b600061121c82611151565b6001600160a01b038216600090815260066020526040902054158061125957506001600160a01b0382166000908152600660205260409020546001145b1561128757506001600160a01b038116600090815260076020526040902060018101549054600202036108b9565b6001600160a01b038216600090815260066020526040902054600214806112c657506001600160a01b0382166000908152600660205260409020546003145b156112f457506001600160a01b038116600090815260076020526040902060018101549054600302036108b9565b6001600160a01b0382166000908152600660205260409020546004148061133357506001600160a01b0382166000908152600660205260409020546005145b1561136157506001600160a01b038116600090815260076020526040902060018101549054600402036108b9565b506001600160a01b038116600090815260076020526040902060018101549054600502036108b9565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113d5611c23565b8302816108b557fe5b600860205281600052604060002081815481106113f757fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b03871660009081526005602052604090206004015481101561151b576001600160a01b038716600090815260056020819052604082206004018054839190859081106114d257fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206003015492830160019081019301905084811115611512578094505b50600101611483565b50919350508290039050915091565b600080805b6001600160a01b0385166000908152600560205260409020600401548110156115b9576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061158057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054106115b1576001820191505b60010161152f565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b6012546001600160a01b0316331461167d576040805162461bcd60e51b815260206004820152601360248201527227b7363c9031b7b73a3930b1ba1037bbb732b960691b604482015290519081900360640190fd5b601e546312cc03000142116116d9576040805162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479204c6f636b656420666f72203130207965617273000000604482015290519081900360640190fd5b6000811161172e576040805162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742072657761726420746f20776974686472617721604482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506040513d6020811015610c8157600080fd5b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906118565750600e546001600160a01b03163314155b801561186d57506010546001600160a01b03163314155b6118ae576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b9338484611cb7565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561191d57600080fd5b505af1158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b505033600090815260056020526040902060060154600290910290811080159061197a57506802b5e3af16b18800008110155b801561198f57506802b5e3af16b18800008106155b80156119a5575069010f0cf064dd592000008111155b6119e6576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6119ef33611396565b611a2a5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b611a3333611151565b6111ff338261247b565b336000908152600860205260408120805483908110611a5857fe5b906000526020600020906009020190508060050160019054906101000a900460ff168015611a8a5750600581015460ff165b8015611a995750428160070154105b1561113e576000611aaa33846127e8565b90506000611ab6611c23565b3360008181526005602090815260409182902060088101805488019055600c0180548701905581518681526001918101829052808301919091529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054611770830201905560019081019091558301829055336000818152600560205260409020600d01805484019055600e54611b83916001600160a01b039091169083670de0b6b3a7640000860281610c0457fe5b611b8e338383612913565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611c3c57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611cad576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b98284611d48565b6001600160a01b0383166000908152605f6020526040902054811115611cdc57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611d8d5760405162461bcd60e51b81526004018080602001828103825260218152602001806130d56021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611de55760405162461bcd60e51b81526004018080602001828103825260228152602001806130b36022913960400191505060405180910390fd5b816003541015611e3c576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611f0b576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611f06903390612b44565b611f16565b611f16336000612b44565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611f4e611c23565b90506000611f5d600285610b99565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b0316815260200190815260200160002060405180610160016040528086815260200160008152602001428152602001610258600f0242018152602001428152602001600015158152602001600115158152602001600015158152602001606481526020016102586014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561214f57600e54612147906001600160a01b03166013836005811061211e57fe5b01546001600160a01b03166127106018856005811061213957fe5b0154866002020281610c0457fe5b6001016120f8565b5061215b858584612913565b612166858584612c01565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b6121bb82611396565b156121fb576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61220481611396565b61224b576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b612253612fb6565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff8111801561229c57600080fd5b506040519080825280602002602001820160405280156122c6578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030155608082015181600401908051906020019061239892919061302e565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461251e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155612519903390612b44565b612529565b612529336000612b44565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055612561611c23565b90506000612570600285610b99565b600b805460028704019055600f546001600160a01b03166000908152605f602052604090205490915081116125fb57600a80546064605a84028190049091018255600f54600e546125d4936001600160a01b03928316939290911691908502610c04565b600f546010546125f6916001600160a01b0390811691166064605a8502610c04565b612621565b600a80548290039055601054600e54612621916001600160a01b03908116911683611cb7565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b0316815260200190815260200160002060405180610160016040528086815260200160008152602001428152602001610258600f0242018152602001428152602001600015158152602001600115158152602001600115158152602001606481526020016102586014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561214f57600e546127e0906001600160a01b03166013836005811061211e57fe5b6001016127ba565b6001600160a01b03821660009081526008602052604081208054829182918590811061281057fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561287157600080fd5b505af1158015612885573d6000803e3d6000fd5b505050506040513d602081101561289b57600080fd5b5051905080156128f75760006102588360040154846007015403816128bc57fe5b04905060c88111156128cc575060c85b600683015483546127109102820204808310156128e65750815b80156128f0578094505b5050612909565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff161015612b3d576001600160a01b03821615612b3057604a8160ff166015811061296057fe5b01546001600160a01b03831660009081526006602052604090205410612b0a576001600160a01b0382166000908152600560208190526040909120015415612b0a57600061271060208360ff16601581106129b757fe5b01548602816129c257fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b505050506040513d6020811015612a4057600080fd5b505190508015612b075781811015612a56578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612ab191168587670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612b35565b612b3d565b600101612935565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c7f576001600160a01b03821615612bf4578260011415612baa576001600160a01b0382166000908152600560205260409020600301805460010190555b612bb382612eac565b600d546001600160a01b0383811691161415612bce57610c7f565b6001600160a01b0391821660009081526005602052604090206001015490911690612bf9565b610c7f565b600101612b66565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612ea1576001600160a01b03861615612e94576001600160a01b03861660009081526006602052604090205460051480612c8257506001600160a01b038616600090815260066020819052604090912054145b15612e6e5784612cd1576001600160a01b0386166000908152600660208190526040909120541415612cbf57600292506001915060059450612ccc565b6001925060029150600694505b612cf9565b6001600160a01b038616600090815260066020526040902054851415612cf957819250600193505b8215612e6e57604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b505050506040513d6020811015612d7c57600080fd5b505190508015612e435781811015612d92578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612ded9116898b670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612e5f5750600d546001600160a01b038981169116145b15612e6b575050612ea1565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612e99565b612ea1565b600101612c27565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612eeb5750600681105b15612f6d57600181016000612eff8661147b565b9150506000612f0f87600161152a565b6000848152600960205260409020600101549091508110801590612f4457506000838152600960205260409020600201548210155b15612f65576001600160a01b03871660009081526006602052604090208390555b505050610c7f565b60058310158015612f875750683635c9adc5dea000008210155b8015612f91575080155b15610c7f575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215613083579160200282015b8281111561308357825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061304e565b5061308f929150613093565b5090565b5b8082111561308f5780546001600160a01b031916815560010161309456fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212202ed4a1642c758e1afc5a8c6b50d7e5629c98a7d3a366064289dbfebdb5bad52c64736f6c634300060c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107e3578063de6b8a2e14610811578063f4b9fa7514610837578063f571545b1461083f578063fa96bd9c14610847578063fcd3533c1461086d57610269565b8063a87430ba146106c4578063a9059cbb14610757578063b6b55f2514610783578063b842f3b6146107a0578063d9f01b7d146107bd57610269565b806371c757ec1161011557806371c757ec146106245780637fe0c526146106635780639351a77a1461068f57806395d89b41146106975780639e1c7a9f1461069f578063a8365d16146106bc57610269565b8063517999bc1461054b57806358cbcb7c1461055357806360a1cbd714610570578063665a11ca146105f657806370a08231146105fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e486146104c157806345653a6d146104e75780634bdf3bf2146104ef5780634c0cc366146105155780634d79348a1461051d578063509222cd1461052557610269565b806323b872dd146104225780632f05772914610458578063313ce56714610475578063348d44871461049357806338c87f1a1461049b57610269565b806310d931011161023157806310d93101146103b957806318160ddd146103d657806320bdc7c7146103de578063222f6182146103e65780632280b7a81461040557610269565b806302fd7a031461026e57806306fdde031461029d578063095ea7b31461031a57806309be84681461035a5780630f32237314610395575b600080fd5b61028b6004803603602081101561028457600080fd5b5035610899565b60408051918252519081900360200190f35b6102a56108be565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103466004803603604081101561033057600080fd5b506001600160a01b03813516906020013561094b565b604080519115158252519081900360200190f35b6103776004803603602081101561037057600080fd5b50356109b1565b60408051938452602084019290925282820152519081900360600190f35b61039d6109d2565b604080516001600160a01b039092168252519081900360200190f35b61039d600480360360208110156103cf57600080fd5b50356109e1565b61028b6109fe565b61028b610a04565b610403600480360360208110156103fc57600080fd5b5035610a0a565b005b6104036004803603602081101561041b57600080fd5b5035610c86565b6103466004803603606081101561043857600080fd5b506001600160a01b03813581169160208101359091169060400135610fb5565b6104036004803603602081101561046e57600080fd5b5035611024565b61047d611142565b6040805160ff9092168252519081900360200190f35b61028b61114b565b610403600480360360208110156104b157600080fd5b50356001600160a01b0316611151565b610403600480360360208110156104d757600080fd5b50356001600160a01b03166111f5565b61039d611202565b61028b6004803603602081101561050557600080fd5b50356001600160a01b0316611211565b61028b61138a565b61028b611390565b6103466004803603602081101561053b57600080fd5b50356001600160a01b0316611396565b61039d6113b3565b61028b6004803603602081101561056957600080fd5b50356113c2565b61059c6004803603604081101561058657600080fd5b506001600160a01b0381351690602001356113de565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b61039d61145a565b61028b6004803603602081101561061457600080fd5b50356001600160a01b0316611469565b61064a6004803603602081101561063a57600080fd5b50356001600160a01b031661147b565b6040805192835260208301919091528051918290030190f35b61028b6004803603604081101561067957600080fd5b506001600160a01b03813516906020013561152a565b61039d6115c1565b6102a56115d0565b610403600480360360208110156106b557600080fd5b5035611628565b61039d6117ad565b6106ea600480360360208110156106da57600080fd5b50356001600160a01b03166117bc565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b6103466004803603604081101561076d57600080fd5b506001600160a01b03813516906020013561182d565b6104036004803603602081101561079957600080fd5b50356118c2565b610403600480360360208110156107b657600080fd5b5035611a3d565b61028b600480360360208110156107d357600080fd5b50356001600160a01b0316611bca565b61028b600480360360408110156107f957600080fd5b506001600160a01b0381358116916020013516611bdc565b61028b6004803603602081101561082757600080fd5b50356001600160a01b0316611bf9565b61039d611c14565b61028b611c23565b61064a6004803603602081101561085d57600080fd5b50356001600160a01b0316611c42565b6103466004803603604081101561088357600080fd5b50803590602001356001600160a01b0316611c5b565b60006108a3611c23565b82670de0b6b3a764000002816108b557fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109ee57fe5b01546001600160a01b0316905081565b60035481565b600c5481565b610a1333611396565b610a4e5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b610a5733611151565b336000908152600860205260408120805482919084908110610a7557fe5b60009182526020909120600990910201600581015490915060ff16610c815780600301544210158015610aaf575060038101546104b00142105b15610abd5760019150610ac2565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b505033600090815260086020526040902080546001919085908110610b6c57fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b9f906002905b04610899565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c3157600a80546064605a84028190049091018255600f54600e54610c0a936001600160a01b039283169392909116919085025b04611cb7565b600f54601054610c2c916001600160a01b0390811691166064605a8502610c04565b610c57565b600a80548290039055601054600e54610c57916001600160a01b03908116911683611cb7565b82610c7f574260048301819055612ee001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610cac5750600e546001600160a01b03163314155b8015610cc357506010546001600160a01b03163314155b610d04576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d68576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d9a5750600c546a084595161401484a000000035b8015610eb457808303610dac816113c2565b600a805483019055600b805482900390559250610dc8816113c2565b601054909350610de39033906001600160a01b031683611cb7565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5050600c805483019055610e763383611d48565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f76565b610ebd836113c2565b600a805485019055600b805482900390559150610ed9836113c2565b601054909250610ef49033906001600160a01b031685611cb7565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050506040513d6020811015610f7357600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fe557600080fd5b610ff0338484611cb7565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061102f82610899565b600e5490915061104a9033906001600160a01b031683611cb7565b33600090815260056020526040902060060154600290920291821080159061107b57506802b5e3af16b18800008210155b801561109057506802b5e3af16b18800008206155b80156110a6575069010f0cf064dd592000008211155b6110e7576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110f033611396565b61112b5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b61113433611151565b61113e3383611e68565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b03821660009081526008602052604090205481101561113e576001600160a01b038216600090815260086020526040812080548390811061119857fe5b60009182526020909120600990910201600581015490915060ff161580156111c957506005810154610100900460ff165b156111ec5760038101546104b0014211156111ec5760058101805461ff00191690555b50600101611154565b6111ff33826121b2565b50565b6012546001600160a01b031681565b600061121c82611151565b6001600160a01b038216600090815260066020526040902054158061125957506001600160a01b0382166000908152600660205260409020546001145b1561128757506001600160a01b038116600090815260076020526040902060018101549054600202036108b9565b6001600160a01b038216600090815260066020526040902054600214806112c657506001600160a01b0382166000908152600660205260409020546003145b156112f457506001600160a01b038116600090815260076020526040902060018101549054600302036108b9565b6001600160a01b0382166000908152600660205260409020546004148061133357506001600160a01b0382166000908152600660205260409020546005145b1561136157506001600160a01b038116600090815260076020526040902060018101549054600402036108b9565b506001600160a01b038116600090815260076020526040902060018101549054600502036108b9565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113d5611c23565b8302816108b557fe5b600860205281600052604060002081815481106113f757fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b03871660009081526005602052604090206004015481101561151b576001600160a01b038716600090815260056020819052604082206004018054839190859081106114d257fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206003015492830160019081019301905084811115611512578094505b50600101611483565b50919350508290039050915091565b600080805b6001600160a01b0385166000908152600560205260409020600401548110156115b9576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061158057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054106115b1576001820191505b60010161152f565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109435780601f1061091857610100808354040283529160200191610943565b6012546001600160a01b0316331461167d576040805162461bcd60e51b815260206004820152601360248201527227b7363c9031b7b73a3930b1ba1037bbb732b960691b604482015290519081900360640190fd5b601e546312cc03000142116116d9576040805162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479204c6f636b656420666f72203130207965617273000000604482015290519081900360640190fd5b6000811161172e576040805162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742072657761726420746f20776974686472617721604482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b15801561178357600080fd5b505af1158015611797573d6000803e3d6000fd5b505050506040513d6020811015610c8157600080fd5b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906118565750600e546001600160a01b03163314155b801561186d57506010546001600160a01b03163314155b6118ae576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b9338484611cb7565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561191d57600080fd5b505af1158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b505033600090815260056020526040902060060154600290910290811080159061197a57506802b5e3af16b18800008110155b801561198f57506802b5e3af16b18800008106155b80156119a5575069010f0cf064dd592000008111155b6119e6576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6119ef33611396565b611a2a5760405162461bcd60e51b81526004018080602001828103825260238152602001806130f66023913960400191505060405180910390fd5b611a3333611151565b6111ff338261247b565b336000908152600860205260408120805483908110611a5857fe5b906000526020600020906009020190508060050160019054906101000a900460ff168015611a8a5750600581015460ff165b8015611a995750428160070154105b1561113e576000611aaa33846127e8565b90506000611ab6611c23565b3360008181526005602090815260409182902060088101805488019055600c0180548701905581518681526001918101829052808301919091529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054611770830201905560019081019091558301829055336000818152600560205260409020600d01805484019055600e54611b83916001600160a01b039091169083670de0b6b3a7640000860281610c0457fe5b611b8e338383612913565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611c3c57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611cad576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b6118b98284611d48565b6001600160a01b0383166000908152605f6020526040902054811115611cdc57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611d8d5760405162461bcd60e51b81526004018080602001828103825260218152602001806130d56021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611de55760405162461bcd60e51b81526004018080602001828103825260228152602001806130b36022913960400191505060405180910390fd5b816003541015611e3c576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611f0b576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611f06903390612b44565b611f16565b611f16336000612b44565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611f4e611c23565b90506000611f5d600285610b99565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b0316815260200190815260200160002060405180610160016040528086815260200160008152602001428152602001610258600f0242018152602001428152602001600015158152602001600115158152602001600015158152602001606481526020016102586014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561214f57600e54612147906001600160a01b03166013836005811061211e57fe5b01546001600160a01b03166127106018856005811061213957fe5b0154866002020281610c0457fe5b6001016120f8565b5061215b858584612913565b612166858584612c01565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b6121bb82611396565b156121fb576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61220481611396565b61224b576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b612253612fb6565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff8111801561229c57600080fd5b506040519080825280602002602001820160405280156122c6578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030155608082015181600401908051906020019061239892919061302e565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461251e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155612519903390612b44565b612529565b612529336000612b44565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055612561611c23565b90506000612570600285610b99565b600b805460028704019055600f546001600160a01b03166000908152605f602052604090205490915081116125fb57600a80546064605a84028190049091018255600f54600e546125d4936001600160a01b03928316939290911691908502610c04565b600f546010546125f6916001600160a01b0390811691166064605a8502610c04565b612621565b600a80548290039055601054600e54612621916001600160a01b03908116911683611cb7565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b0316815260200190815260200160002060405180610160016040528086815260200160008152602001428152602001610258600f0242018152602001428152602001600015158152602001600115158152602001600115158152602001606481526020016102586014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b600581101561214f57600e546127e0906001600160a01b03166013836005811061211e57fe5b6001016127ba565b6001600160a01b03821660009081526008602052604081208054829182918590811061281057fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561287157600080fd5b505af1158015612885573d6000803e3d6000fd5b505050506040513d602081101561289b57600080fd5b5051905080156128f75760006102588360040154846007015403816128bc57fe5b04905060c88111156128cc575060c85b600683015483546127109102820204808310156128e65750815b80156128f0578094505b5050612909565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff161015612b3d576001600160a01b03821615612b3057604a8160ff166015811061296057fe5b01546001600160a01b03831660009081526006602052604090205410612b0a576001600160a01b0382166000908152600560208190526040909120015415612b0a57600061271060208360ff16601581106129b757fe5b01548602816129c257fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b505050506040513d6020811015612a4057600080fd5b505190508015612b075781811015612a56578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612ab191168587670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612b35565b612b3d565b600101612935565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c7f576001600160a01b03821615612bf4578260011415612baa576001600160a01b0382166000908152600560205260409020600301805460010190555b612bb382612eac565b600d546001600160a01b0383811691161415612bce57610c7f565b6001600160a01b0391821660009081526005602052604090206001015490911690612bf9565b610c7f565b600101612b66565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612ea1576001600160a01b03861615612e94576001600160a01b03861660009081526006602052604090205460051480612c8257506001600160a01b038616600090815260066020819052604090912054145b15612e6e5784612cd1576001600160a01b0386166000908152600660208190526040909120541415612cbf57600292506001915060059450612ccc565b6001925060029150600694505b612cf9565b6001600160a01b038616600090815260066020526040902054851415612cf957819250600193505b8215612e6e57604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b505050506040513d6020811015612d7c57600080fd5b505190508015612e435781811015612d92578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612ded9116898b670de0b6b3a7640000860281610c0457fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612e5f5750600d546001600160a01b038981169116145b15612e6b575050612ea1565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612e99565b612ea1565b600101612c27565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612eeb5750600681105b15612f6d57600181016000612eff8661147b565b9150506000612f0f87600161152a565b6000848152600960205260409020600101549091508110801590612f4457506000838152600960205260409020600201548210155b15612f65576001600160a01b03871660009081526006602052604090208390555b505050610c7f565b60058310158015612f875750683635c9adc5dea000008210155b8015612f91575080155b15610c7f575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215613083579160200282015b8281111561308357825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061304e565b5061308f929150613093565b5090565b5b8082111561308f5780546001600160a01b031916815560010161309456fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212202ed4a1642c758e1afc5a8c6b50d7e5629c98a7d3a366064289dbfebdb5bad52c64736f6c634300060c0033

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:26996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20729:134;;;;;;;;;;;;;;;;-1:-1:-1;20729:134:0;;:::i;:::-;;;;;;;;;;;;;;;;793:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26224:216;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26224: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;8504:1392::-;;;;;;;;;;;;;;;;-1:-1:-1;8504:1392:0;;:::i;:::-;;24311:1373;;;;;;;;;;;;;;;;-1:-1:-1;24311:1373:0;;:::i;26450:274::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26450:274:0;;;;;;;;;;;;;;;;;:::i;7989:509::-;;;;;;;;;;;;;;;;-1:-1:-1;7989:509:0;;:::i;930:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3147;;;:::i;21841:402::-;;;;;;;;;;;;;;;;-1:-1:-1;21841:402:0;-1:-1:-1;;;;;21841:402:0;;:::i;6452:121::-;;;;;;;;;;;;;;;;-1:-1:-1;6452:121:0;-1:-1:-1;;;;;6452:121:0;;:::i;2896:22::-;;;:::i;21144:691::-;;;;;;;;;;;;;;;;-1:-1:-1;21144:691:0;-1:-1:-1;;;;;21144:691:0;;:::i;2433:38::-;;;:::i;2386:40::-;;;:::i;22254:110::-;;;;;;;;;;;;;;;;-1:-1:-1;22254:110:0;-1:-1:-1;;;;;22254:110:0;;:::i;2510:61::-;;;:::i;20869:126::-;;;;;;;;;;;;;;;;-1:-1:-1;20869:126:0;;:::i;2186:49::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2186:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:71;;;:::i;4307:44::-;;;;;;;;;;;;;;;;-1:-1:-1;4307:44:0;-1:-1:-1;;;;;4307:44:0;;:::i;19281:561::-;;;;;;;;;;;;;;;;-1:-1:-1;19281:561:0;-1:-1:-1;;;;;19281:561:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19848:357;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19848:357:0;;;;;;;;:::i;2663:70::-;;;:::i;826:28::-;;;:::i;27403:333::-;;;;;;;;;;;;;;;;-1:-1:-1;27403: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25690:281;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25690:281:0;;;;;;;;:::i;7526:457::-;;;;;;;;;;;;;;;;-1:-1:-1;7526:457:0;;:::i;23392:913::-;;;;;;;;;;;;;;;;-1:-1:-1;23392:913:0;;:::i;2076:45::-;;;;;;;;;;;;;;;;-1:-1:-1;2076:45:0;-1:-1:-1;;;;;2076:45:0;;:::i;4358:64::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4358:64:0;;;;;;;;;;:::i;22374:120::-;;;;;;;;;;;;;;;;-1:-1:-1;22374:120:0;-1:-1:-1;;;;;22374:120:0;;:::i;769:17::-;;;:::i;21007:131::-;;;:::i;2128:51::-;;;;;;;;;;;;;;;;-1:-1:-1;2128:51:0;-1:-1:-1;;;;;2128:51:0;;:::i;26736:199::-;;;;;;;;;;;;;;;;-1:-1:-1;26736:199:0;;;;;;-1:-1:-1;;;;;26736:199:0;;:::i;20729:134::-;20791:7;20839:10;:8;:10::i;:::-;20823;20834:4;20823:15;:26;;;;;;20816:33;;20729:134;;;;:::o;793:26::-;;;;;;;;;;;;;;;-1:-1:-1;;793:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26224:216::-;26326:10;26291:12;26316:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;26316:31:0;;;;;;;;;;;:40;;;26372:38;;;;;;;26291:12;;26316:31;;26326:10;;26372:38;;;;;;;;-1:-1:-1;26428:4:0;26224: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;8504:1392::-;8568:24;8581:10;8568:12;:24::i;:::-;8560:72;;;;-1:-1:-1;;;8560:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8643:28;8660:10;8643:16;:28::i;:::-;8748:10;8683;8737:22;;;:10;:22;;;;;:35;;8683:10;;8737:22;8760:11;;8737:35;;;;;;;;;;;;;;;;;;;8784:12;;;;8737:35;;-1:-1:-1;8784:12:0;;8780:1109;;8833:5;:17;;;8816:15;:34;;:82;;;;-1:-1:-1;8870:17:0;;;;8888:10;8870:28;8854:15;:44;8816:82;8813:183;;;8926:4;8920:10;;8813:183;;;8975:5;8969:11;;8813:183;9010:3;;;9054:12;;9010:59;;;-1:-1:-1;;;9010:59:0;;9027:10;9010:59;;;;9047:4;9010:59;;;;9067:1;9054:14;;;9010:59;;;;;-1:-1:-1;;;;;9010:3:0;;;;:16;;:59;;;;;;;;;;;;;;;;;:3;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9095:10:0;9084:22;;;;:10;9010:59;9084:22;;;;:35;;9127:4;;9084:22;9107:11;;9084:35;;;;;;;;;;;;;;;;;;;:42;;:47;;-1:-1:-1;;9084:47:0;;;;;;;;;;;9174:12;;9161:28;;9187:1;;9174:14;;9161:12;:28::i;:::-;9229:12;;9204:23;:39;;9242:1;9229:14;;;9204:39;;;;;9271:12;;-1:-1:-1;;;;;9271:12:0;-1:-1:-1;9261:23:0;;;:9;:23;;;;;;9146:43;;-1:-1:-1;;;9258:430:0;;9313:25;:40;;9350:3;9347:2;9340:9;;:13;;;9313:40;;;;;9390:12;;9403:20;;9380:59;;-1:-1:-1;;;;;9390:12:0;;;;9403:20;;;;;9350:3;9425:9;;:13;;9380:9;:59::i;:::-;9469:12;;9482:13;;9459:52;;-1:-1:-1;;;;;9469:12:0;;;;9482:13;9507:3;9504:2;9497:9;;:13;;9459:52;9258:430;;;9565:25;:33;;;;;;;9629:13;;9643:20;;9619:53;;-1:-1:-1;;;;;9629:13:0;;;;9643:20;9592:6;9619:9;:53::i;:::-;9706:5;9702:182;;9749:15;9731:17;;;:33;;;9819:11;9803:27;9783:19;;;:47;9849:14;;;:19;;-1:-1:-1;;9849:19:0;;;;;9702:182;8780:1109;;8504:1392;;;:::o;24311:1373::-;24397:12;;-1:-1:-1;;;;;24397:12:0;24383:10;:26;;;;:64;;-1:-1:-1;24427:20:0;;-1:-1:-1;;;;;24427:20:0;24413:10;:34;;24383:64;:95;;;;-1:-1:-1;24465:13:0;;-1:-1:-1;;;;;24465:13:0;24451:10;:27;;24383:95;24375:120;;;;;-1:-1:-1;;;24375:120:0;;;;;;;;;;;;-1:-1:-1;;;24375:120:0;;;;;;;;;;;;;;;24541:10;24506:12;24531:21;;;:9;:21;;;;;;:35;-1:-1:-1;24531:35:0;24523:75;;;;;-1:-1:-1;;;24523:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24661:10;;24643:3;24641:1;24628:14;;:18;;24683:11;24661:20;;;24660:34;24657:97;;;-1:-1:-1;24732:10:0;;24720:11;:22;24657:97;24767:11;;24764:863;;24820:22;;;24863:25;24820:22;24863:12;:25::i;:::-;24903;:38;;;;;;24956:23;:29;;;;;;;24858:30;-1:-1:-1;25005:25:0;24930:11;25005:12;:25::i;:::-;25066:13;;25000:30;;-1:-1:-1;25045:47:0;;25055:10;;-1:-1:-1;;;;;25066:13:0;25080:11;25045:9;:47::i;:::-;25107:3;;;:30;;;-1:-1:-1;;;25107:30:0;;25120:10;25107:30;;;;;;;;;;;;-1:-1:-1;;;;;25107:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25153:10:0;:21;;;;;;25189:27;25195:10;25165:9;25189:5;:27::i;:::-;25236:42;;;;;;;;25264:1;;25245:10;;25236:42;;;;;;;;;24764:863;;;;25325:26;25338:12;25325;:26::i;:::-;25366:25;:39;;;;;;25420:23;:29;;;;;;;25320:31;-1:-1:-1;25469:26:0;25393:12;25469;:26::i;:::-;25531:13;;25464:31;;-1:-1:-1;25510:48:0;;25520:10;;-1:-1:-1;;;;;25531:13:0;25545:12;25510:9;:48::i;:::-;25573:3;;;:30;;;-1:-1:-1;;;25573:30:0;;25586:10;25573:30;;;;;;;;;;;;-1:-1:-1;;;;;25573:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24764:863:0;25642:34;;;;;;;;;;;;;;25647:10;;25642:34;;;;;;;;24311:1373;;;:::o;26450:274::-;-1:-1:-1;;;;;26573:16:0;;26530:12;26573:16;;;:9;:16;;;;;;;;26590:10;26573:28;;;;;;;;26563:38;;;26555:47;;;;;;26613:32;26623:10;26634:3;26638:6;26613:9;:32::i;:::-;-1:-1:-1;;;;;;26656:16:0;;;;;;:9;:16;;;;;;;;26673:10;26656:28;;;;;;;:38;;;;;;;-1:-1:-1;26450:274:0;;;;;:::o;7989:509::-;8046:14;8061:21;8074:7;8061:12;:21::i;:::-;8114:20;;8046:36;;-1:-1:-1;8093:49:0;;8103:10;;-1:-1:-1;;;;;8114:20:0;8046:36;8093:9;:49::i;:::-;8206:10;8200:17;;;;:5;:17;;;;;:29;;;8169:1;8161:9;;;;8189:40;;;;;:65;;;2323:5;8233:7;:21;;8189:65;:92;;;;-1:-1:-1;2323:5:0;8258:7;:18;:23;8189:92;:117;;;;;2372:7;8285;:21;;8189:117;8181:143;;;;;-1:-1:-1;;;8181:143:0;;;;;;;;;;;;-1:-1:-1;;;8181:143:0;;;;;;;;;;;;;;;8343:24;8356:10;8343:12;:24::i;:::-;8335:72;;;;-1:-1:-1;;;8335:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8418:28;8435:10;8418:16;:28::i;:::-;8459:31;8471:10;8482:7;8459:11;:31::i;:::-;7989:509;;:::o;930:26::-;;;;;;:::o;3147:::-;;;;:::o;21841:402::-;21904:9;21900:333;-1:-1:-1;;;;;21923:17:0;;;;;;:10;:17;;;;;:24;21919:28;;21900:333;;;-1:-1:-1;;;;;21991:17:0;;21965:23;21991:17;;;:10;:17;;;;;:20;;22009:1;;21991:20;;;;;;;;;;;;;;;;;;;22030:12;;;;21991:20;;-1:-1:-1;22030:12:0;;22029:13;:31;;;;-1:-1:-1;22046:14:0;;;;;;;;;22029:31;22026:196;;;22107:17;;;;22125:10;22107:28;22091:15;:44;22088:120;;;22168:14;;;:20;;-1:-1:-1;;22168:20:0;;;22088:120;-1:-1:-1;21949:3:0;;21900:333;;6452:121;6524:41;6537:10;6549:15;6524:12;:41::i;:::-;6452:121;:::o;2896:22::-;;;-1:-1:-1;;;;;2896:22:0;;:::o;21144:691::-;21197:7;21221:23;21238:5;21221:16;:23::i;:::-;-1:-1:-1;;;;;21262:16:0;;;;;;:9;:16;;;;;:21;:24;;:52;;-1:-1:-1;;;;;;21290:16:0;;;;;;:9;:16;;;;;:21;21313:1;21290:24;21262:52;21259:568;;;-1:-1:-1;;;;;;21372:19:0;;;;;;:12;:19;;;;;:30;;;;21337:32;;21370:1;21337:34;:65;21329:74;;21259:568;-1:-1:-1;;;;;21422:16:0;;;;;;:9;:16;;;;;:21;21445:1;21422:24;;:52;;-1:-1:-1;;;;;;21450:16:0;;;;;;:9;:16;;;;;:21;21473:1;21450:24;21422:52;21419:408;;;-1:-1:-1;;;;;;21532:19:0;;;;;;:12;:19;;;;;:30;;;;21497:32;;21530:1;21497:34;:65;21489:74;;21419:408;-1:-1:-1;;;;;21582:16:0;;;;;;:9;:16;;;;;:21;21605:1;21582:24;;:52;;-1:-1:-1;;;;;;21610:16:0;;;;;;:9;:16;;;;;:21;21633:1;21610:24;21582:52;21579:248;;;-1:-1:-1;;;;;;21692:19:0;;;;;;:12;:19;;;;;:30;;;;21657:32;;21690:1;21657:34;:65;21649:74;;21579:248;-1:-1:-1;;;;;;21796:19:0;;;;;;:12;:19;;;;;:30;;;;21761:32;;21794:1;21761:34;:65;21753:74;;2433:38;;;;:::o;2386:40::-;;;;:::o;22254:110::-;-1:-1:-1;;;;;22336:11:0;22311:4;22336:11;;;:5;:11;;;;;:14;:19;;;22254:110::o;2510:61::-;;;-1:-1:-1;;;;;2510:61:0;;:::o;20869:126::-;20930:4;20983;20972:10;:8;:10::i;:::-;20959: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;4307:44::-;;;;;;;;;;;;;:::o;19281:561::-;19338:7;;;;;;19456:302;-1:-1:-1;;;;;19479:12:0;;;;;;:5;:12;;;;;:22;;:29;19475:33;;19456:302;;;-1:-1:-1;;;;;19558:12:0;;19529:21;19558:12;;;19552:5;19558:12;;;;;;;:22;;:25;;19529:21;;19558:22;19581:1;;19558:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19558:25:0;19552:32;;;;;;;;;;;;:42;;;19623:24;;;19558:25;19623:24;;;;19552:44;;-1:-1:-1;19665:23:0;;;19662:85;;;19718:13;19708:23;;19662:85;-1:-1:-1;19510:3:0;;19456:302;;;-1:-1:-1;19790:7:0;;-1:-1:-1;;19780:17:0;;;;-1:-1:-1;19281:561:0;;;:::o;19848:357::-;19918:7;;;19978:190;-1:-1:-1;;;;;20001:12:0;;;;;;:5;:12;;;;;:22;;:29;19997:33;;19978:190;;;-1:-1:-1;;;;;20064:12:0;;20054:36;20064:12;;;:5;:12;;;;;:22;;:25;;20099:5;;20054:9;;:36;;20087:1;;20064:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20064:25:0;20054:36;;;;;;;;;;;;:41;:50;20051:106;;20140:1;20124:17;;;;20051:106;20032:3;;19978:190;;;-1:-1:-1;20185:12:0;19848:357;-1:-1:-1;;;19848:357:0:o;2663:70::-;;;-1:-1:-1;;;;;2663:70:0;;:::o;826:28::-;;;;;;;;;;;;;;-1:-1:-1;;826:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27403:333;27488:7;;-1:-1:-1;;;;;27488:7:0;27476:10;:19;27468:50;;;;;-1:-1:-1;;;27468:50:0;;;;;;;;;;;;-1:-1:-1;;;27468:50:0;;;;;;;;;;;;;;;27555:17;;27573:9;27555:27;27538:15;:45;27530:86;;;;;-1:-1:-1;;;27530:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27644:1;27636:7;:9;27628:54;;;;;-1:-1:-1;;;27628:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27693:3;;;:33;;;-1:-1:-1;;;27693:33:0;;27706:10;27693:33;;;;;;;;;;;;-1:-1:-1;;;;;27693:3:0;;;;:12;;:33;;;;;;;;;;;;;;;;;:3;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:78;;;-1:-1:-1;;;;;2578:78:0;;:::o;2032:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2032:37:0;;;;;;;;;;;;;;;;;;;;;;:::o;25690:281::-;25800:12;;25753;;-1:-1:-1;;;;;25800:12:0;25786:10;:26;;;;:64;;-1:-1:-1;25830:20:0;;-1:-1:-1;;;;;25830:20:0;25816:10;:34;;25786:64;:95;;;;-1:-1:-1;25868:13:0;;-1:-1:-1;;;;;25868:13:0;25854:10;:27;;25786:95;25778:120;;;;;-1:-1:-1;;;25778:120:0;;;;;;;;;;;;-1:-1:-1;;;25778:120:0;;;;;;;;;;;;;;;25909:32;25919:10;25930:3;25934:6;25909:9;:32::i;:::-;-1:-1:-1;25959:4:0;25690:281;;;;:::o;7526:457::-;7580:3;;;:50;;;-1:-1:-1;;;7580:50:0;;7597:10;7580:50;;;;7616:4;7580:50;;;;;;;;;;;;-1:-1:-1;;;;;7580:3:0;;;;:16;;:50;;;;;;;;;;;;;;;;;:3;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7694:10:0;7688:17;;;;:5;7580:50;7688:17;;;;:29;;;7657:1;7649:9;;;;7677:40;;;;;:65;;;2323:5;7721:7;:21;;7677:65;:92;;;;-1:-1:-1;2323:5:0;7746:7;:18;:23;7677:92;:117;;;;;2372:7;7773;:21;;7677:117;7669:143;;;;;-1:-1:-1;;;7669:143:0;;;;;;;;;;;;-1:-1:-1;;;7669:143:0;;;;;;;;;;;;;;;7831:24;7844:10;7831:12;:24::i;:::-;7823:72;;;;-1:-1:-1;;;7823:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7906:28;7923:10;7906:16;:28::i;:::-;7947;7956:10;7967:7;7947:8;:28::i;23392:913::-;23488:10;23451:23;23477:22;;;:10;:22;;;;;:35;;23500:11;;23477:35;;;;;;;;;;;;;;;;23451:61;;23520:5;:14;;;;;;;;;;;;:30;;;;-1:-1:-1;23538:12:0;;;;;;23520:30;:69;;;;;23574:15;23554:5;:19;;;:35;23520:69;23517:781;;;23606:19;23627:37;23641:10;23652:11;23627:13;:37::i;:::-;23605:59;;23680:13;23694:10;:8;:10::i;:::-;23719;23713:17;;;;:5;:17;;;;;;;;;:24;;;:38;;;;;;23760:29;;:43;;;;;;23823:50;;;;;-1:-1:-1;23823:50:0;;;;;;;;;;;;;;;23680:24;;-1:-1:-1;23719:10:0;;;;23823:50;;;;;;;;;;23902:12;;;;;23880:19;;;:47;;23901:26;;;23880:47;;;-1:-1:-1;23946:15:0;;;;;;23976:18;;:30;;;24041:10;-1:-1:-1;24035:17:0;;;:5;:17;;;;;:31;;:44;;;;;;24104:20;;24094:65;;-1:-1:-1;;;;;24104:20:0;;;;24153:5;24148:4;24136:16;;24153:5;24136:22;;;24094:65;24174:52;24197:10;24208:11;24220:5;24174:22;:52::i;:::-;24260:32;;;;;;;;24269:10;;24260:32;;;;;;;;;;23517:781;;23392:913;;:::o;2076:45::-;;;;;;;;;;;;;:::o;4358:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22374:120::-;-1:-1:-1;;;;;22462:17:0;22435:7;22462:17;;;:10;:17;;;;;:24;;22374:120::o;769:17::-;;;-1:-1:-1;;;;;769:17:0;;:::o;21007:131::-;21047:4;21105:25;;21076:23;;21100:4;21076:28;:54;;;;;;21069:61;;21007:131;:::o;2128:51::-;;;;;;;;;;;;;;;;;;;:::o;26736:199::-;26833:12;;26798:4;;-1:-1:-1;;;;;26833:12:0;26819:10;:26;26815:58;;26848:23;;;-1:-1:-1;;;26848:23:0;;;;;;;;;;;;-1:-1:-1;;;26848:23:0;;;;;;;;;;;;;;26815:58;26883:22;26889:7;26898:6;26883:5;:22::i;25977:241::-;-1:-1:-1;;;;;26067:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;26067:26:0;26059:35;;;;;;-1:-1:-1;;;;;26105:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;26142:14;;;;;;;;;;:24;;;;;;26182:28;;;;;;;26142:14;;26182:28;;;;;;;;;;;25977:241;;;:::o;26941:456::-;-1:-1:-1;;;;;27031:21:0;;27023:67;;;;-1:-1:-1;;;27023:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27126:18:0;;27101:22;27126:18;;;:9;:18;;;;;;27163:24;;;;27155:71;;;;-1:-1:-1;;;27155:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27258:6;27245:11;;:19;;27237:57;;;;;-1:-1:-1;;;27237:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27305:18:0;;;;;;;:9;:18;;;;;27326:23;;;;27305:44;;;27368:11;:21;;;;;;;;26941:456::o;11771:1410::-;-1:-1:-1;;;;;11891:18:0;;;11866:23;11891:18;;;:5;:18;;;;;;;;:27;;;;;;;11929:22;;;;;;:37;;:46;;;;;;11997:18;;;;:31;;;;;11994:301;;-1:-1:-1;;;;;12065:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;12118:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12118:50:0;;;;;;;;;;;12183:28;;12198:10;;12183:14;:28::i;:::-;11994:301;;;12255:28;12270:10;12281:1;12255:14;:28::i;:::-;-1:-1:-1;;;;;12305:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;12358:12;:25;;;;:48;;;;;;12433:10;:8;:10::i;:::-;12419:24;-1:-1:-1;12462:14:0;12477:23;12498:1;12490:7;:9;;12477:23;12462:38;;12544:7;12513:5;:18;12519:11;-1:-1:-1;;;;;12513:18:0;-1:-1:-1;;;;;12513:18:0;;;;;;;;;;;;:30;;:38;;;;12562:10;:23;12573:11;-1:-1:-1;;;;;12562:23:0;-1:-1:-1;;;;;12562:23:0;;;;;;;;;;;;12591:242;;;;;;;;12615:7;12591:242;;;;12624:1;12591:242;;;;12640:15;12591:242;;;;3261:5;12687:2;:11;12671:15;:27;12591:242;;;;12714:15;12591:242;;;;12744:5;12591:242;;;;;;12764:4;12591:242;;;;;;12783:5;12591:242;;;;;;12789:3;12591:242;;;;3261:5;12809:2;:11;12793:15;:27;12591:242;;;;12821:1;12591:242;;;12562:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12849:6;12845:134;12860:1;12858;:3;12845:134;;;12901:20;;12891:75;;-1:-1:-1;;;;;12901:20:0;12922:9;12932:1;12922:12;;;;;;;;;-1:-1:-1;;;;;12922:12:0;12960:5;12945:11;12957:1;12945:14;;;;;;;;;12936:6;12943:1;12936:8;:23;:29;;;;12891:75;12862:3;;12845:134;;;;12990:49;13013:11;13025:7;13033:5;12990:22;:49::i;:::-;13051:51;13076:11;13088:7;13096:5;13051:24;:51::i;:::-;13126:37;;;;;;13161:1;13154:8;;13126:37;;;;;;-1:-1:-1;;;;;13126:37:0;;;;;;;;;;;11771:1410;;;;;:::o;6579:941::-;6675:25;6688:11;6675:12;:25::i;:::-;6674:26;6666:50;;;;;-1:-1:-1;;;6666:50:0;;;;;;;;;;;;-1:-1:-1;;;6666:50:0;;;;;;;;;;;;;;;6735:29;6748:15;6735:12;:29::i;:::-;6727:61;;;;;-1:-1:-1;;;6727:61:0;;;;;;;;;;;;-1:-1:-1;;;6727:61:0;;;;;;;;;;;;;;;6799:16;;:::i;:::-;6818:455;;;;;;;;6842:10;;6818:455;;;;6889:15;-1:-1:-1;;;;;6818:455:0;;;;;6934:1;6818:455;;;;6961:1;6818:455;;;;7001:1;6987:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6987:16:0;;6818:455;;;;7062:1;6818:455;;;;7090:1;6818:455;;;;7033:1;6818:455;;;;7113:1;6818:455;;;;7141:1;6818:455;;;;7171:1;6818:455;;;;7202:1;6818:455;;;;7230:1;6818:455;;;;7260:1;6818:455;;;6799:474;;7313:4;7292:5;:18;7298:11;-1:-1:-1;;;;;7292:18:0;-1:-1:-1;;;;;7292:18:0;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7292:25:0;;;;;-1:-1:-1;;;;;7292:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7292:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7328:18:0;;;-1:-1:-1;7328:18:0;;;;;;;;;;;:27;;;;:45;;-1:-1:-1;;;;;;7328:45:0;;;;;;;;;7384:10;:12;;;;;;;7463:21;7486:22;;;;;;;:25;7420:92;;;;;;;7463:21;;7420:92;;;;;;;;;6579:941;;;:::o;9907:1858::-;-1:-1:-1;;;;;10024:18:0;;;9999:23;10024:18;;;:5;:18;;;;;;;;:27;;;;;;;10062:22;;;;;;:37;;:46;;;;;;10130:18;;;;:31;;;;;10127:313;;-1:-1:-1;;;;;10198:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;10251:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10251:50:0;;;;;;;;;;;10328:28;;10343:10;;10328:14;:28::i;:::-;10127:313;;;10400:28;10415:10;10426:1;10400:14;:28::i;:::-;-1:-1:-1;;;;;10450:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;10503:12;:25;;;;:48;;;;;;10576:10;:8;:10::i;:::-;10562:24;-1:-1:-1;10597:14:0;10612:23;10633:1;10625:7;:9;;10612:23;10646;:34;;10679:1;10671:9;;10646:34;;;10704:12;;-1:-1:-1;;;;;10704:12:0;-1:-1:-1;10694:23:0;;;:9;:23;;;;;;10597:38;;-1:-1:-1;;;10691:398:0;;10742:25;:40;;10779:3;10776:2;10769:9;;:13;;;10742:40;;;;;10815:12;;10828:20;;10805:59;;-1:-1:-1;;;;;10815:12:0;;;;10828:20;;;;;10779:3;10850:9;;:13;;10805:59;10890:12;;10903:13;;10880:52;;-1:-1:-1;;;;;10890:12:0;;;;10903:13;10928:3;10925:2;10918:9;;:13;;10880:52;10691:398;;;10974:25;:33;;;;;;;11034:13;;11048:20;;11024:53;;-1:-1:-1;;;;;11034:13:0;;;;11048:20;11001:6;11024:9;:53::i;:::-;11130:7;11099:5;:18;11105:11;-1:-1:-1;;;;;11099:18:0;-1:-1:-1;;;;;11099:18:0;;;;;;;;;;;;:30;;:38;;;;11148:10;:23;11159:11;-1:-1:-1;;;;;11148:23:0;-1:-1:-1;;;;;11148:23:0;;;;;;;;;;;;11177:241;;;;;;;;11201:7;11177:241;;;;11210:1;11177:241;;;;11226:15;11177:241;;;;3261:5;11273:2;:11;11257:15;:27;11177:241;;;;11300:15;11177:241;;;;11330:5;11177:241;;;;;;11350:4;11177:241;;;;;;11369:4;11177:241;;;;;;11374:3;11177:241;;;;3261:5;11394:2;:11;11378:15;:27;11177:241;;;;11406:1;11177:241;;;11148:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11434:6;11430:134;11445:1;11443;:3;11430:134;;;11486:20;;11476:75;;-1:-1:-1;;;;;11486:20:0;11507:9;11517:1;11507:12;;;;;;11476:75;11447:3;;11430:134;;22502:884;-1:-1:-1;;;;;22650:17:0;;22573:7;22650:17;;;:10;:17;;;;;:30;;22573:7;;;;22668:11;;22650:30;;;;;;;;;;;;;;;;22624:56;;22691:25;22719:4;-1:-1:-1;;;;;22719:16:0;;22736:5;22719:23;;;;;;;;;;;;;-1:-1:-1;;;;;22719:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22719:23:0;;-1:-1:-1;22769:19:0;;22766:593;;22814:11;3261:5;22849;:17;;;22827:5;:19;;;:39;22826:57;;;;;;22814:69;;22908:3;22901:6;:10;22898:38;;;-1:-1:-1;22933:3:0;22898:38;22986:23;;;;22973:12;;23019:5;22973:36;;:43;;:51;23044:29;;;23041:127;;;-1:-1:-1;23107:17:0;23041:127;23185:13;;23182:85;;23240:11;23233:18;;23182:85;22766:593;;;;;23328:14;;;:19;;-1:-1:-1;;23328:19:0;;;;;22766:593;-1:-1:-1;23371:6:0;;22502:884;-1:-1:-1;;;;22502:884:0:o;13187:1426::-;-1:-1:-1;;;;;13301:12:0;;;13284:14;13301:12;;;:5;:12;;;;;:21;;;;;;;13333:1273;3218:2;13350:1;:14;;;13333:1273;;;-1:-1:-1;;;;;13388:20:0;;;13385:1210;;13455:9;13465:1;13455:12;;;;;;;;;;;-1:-1:-1;;;;;13431:17:0;;;;;;:9;:17;;;;;:22;:36;13428:1042;;-1:-1:-1;;;;;13512:13:0;;13539:1;13512:13;;;:5;:13;;;;;;;;:26;;:28;13509:942;;13614:14;13654:5;13637:13;13651:1;13637:16;;;;;;;;;;;13629:7;:24;:30;;;;;;13614:45;;13710:25;13736:4;-1:-1:-1;;;;;13736:16:0;;13753:6;13736:24;;;;;;;;;;;;;-1:-1:-1;;;;;13736:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13736:24:0;;-1:-1:-1;13792:19:0;;13789:639;;13890:6;13872:17;:24;13869:143;;;13939:17;13932:24;;13869:143;-1:-1:-1;;;;;14042:13:0;;;;;;;:5;:13;;;;;;;;:25;;;:34;;;;;;14130:25;;:34;;;;;;14196:12;:20;;;;;-1:-1:-1;14196:31:0;:40;;;;;;14277:20;;14267:56;;14277:20;14048:6;14317:5;14312:4;14305:11;;14317:5;14305:17;;;14267:56;14359:40;;;;;;;14394:1;14392:3;;14359:40;;;;;14397:1;14359:40;;;;;;-1:-1:-1;;;;;14359:40:0;;;;;;;;;;;;;;;;;13789:639;13509:942;;;-1:-1:-1;;;;;14497:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;13385:1210;;;14574:5;;13385:1210;13366:3;;13333:1273;;;;13187:1426;;;;:::o;20211:509::-;-1:-1:-1;;;;;20297:12:0;;;20280:14;20297:12;;;:5;:12;;;;;:21;;;;;;;20329:384;3218:2;20348:1;:14;20329:384;;;-1:-1:-1;;;;;20386:20:0;;;20383:319;;20429:5;20436:1;20429:8;20426:85;;;-1:-1:-1;;;;;20486:13:0;;;;;;:5;:13;;;;;:23;;;;20510:1;20486:25;20460:51;;20426:85;20530:20;20543:6;20530:12;:20::i;:::-;20582:3;;-1:-1:-1;;;;;20572:13:0;;;20582:3;;20572:13;20569:23;;;20587:5;;20569:23;-1:-1:-1;;;;;20620:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;20383:319;;;20681:5;;20383:319;20364:3;;20329:384;;14619:2444;-1:-1:-1;;;;;14735:12:0;;;14718:14;14735:12;;;:5;:12;;;;;:21;;;;;;;14718:14;;;;14894:2162;14915:2;14911:1;:6;;;14894:2162;;;-1:-1:-1;;;;;14953:20:0;;;14950:2095;;-1:-1:-1;;;;;14996:17:0;;;;;;:9;:17;;;;;:22;15020:1;14996:25;;:54;;-1:-1:-1;;;;;;15025:17:0;;;;;;:9;:17;;;;;;;;:22;:25;14996:54;14993:1913;;;15078:13;15075:798;;-1:-1:-1;;;;;15144:17:0;;;;;;:9;:17;;;;;;;;:22;:25;15141:418;;;15237:1;15221:17;;15287:1;15269:19;;15330:1;15319:12;;15141:418;;;15437:1;15421:17;;15487:1;15469:19;;15530:1;15519:12;;15141:418;15075:798;;;-1:-1:-1;;;;;15639:17:0;;;;;;:9;:17;;;;;:22;:34;;15636:214;;;15741:17;15725:33;;15797:1;15789:9;;15636:214;15898:17;;15895:992;;16106:24;;;-1:-1:-1;;;16106:24:0;;-1:-1:-1;;;;;16106:24:0;;;;;;;;15943:14;;15982:3;15958:23;;;:27;;15943:14;;16106:4;;:16;;:24;;;;;;;;;;;;;;15943:14;16106:4;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16106:24:0;;-1:-1:-1;16162:19:0;;16159:641;;16260:6;16242:17;:24;16239:143;;;16309:17;16302:24;;16239:143;-1:-1:-1;;;;;16412:13:0;;;;;;;:5;:13;;;;;;;;:27;;;:36;;;;;;16502:25;;:34;;;;;;16568:12;:20;;;;;-1:-1:-1;16568:31:0;:40;;;;;;16649:20;;16639:56;;16649:20;16418:6;16689:5;16684:4;16677:11;;16689:5;16677:17;;;16639:56;16731:40;;;;;;;16766:1;16764:3;;16731:40;;;;;16769:1;16731:40;;;;;;-1:-1:-1;;;;;16731:40:0;;;;;;;;;;;;;;;;;16159:641;16829:7;16838:1;16829:10;:27;;;-1:-1:-1;16853:3:0;;-1:-1:-1;;;;;16843:13:0;;;16853:3;;16843:13;16829:27;16826:37;;;16858:5;;;;16826:37;15895:992;;;-1:-1:-1;;;;;16933:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;14950:2095;;;17024:5;;14950:2095;14919:3;;14894:2162;;;;14619:2444;;;;;;;;:::o;18504:771::-;-1:-1:-1;;;;;18591:12:0;;18568:19;18591:12;;;:5;:12;;;;;;;;:26;;;;18654:27;;;;;18711:9;:16;;;;;:21;18759:1;18746:14;;;;;:31;;;18776:1;18764:11;:13;18746:31;18743:525;;;18833:1;18821:13;;18805;18873:19;18886:5;18873:12;:19::i;:::-;18849:43;;;18907:17;18925:23;18940:5;18946:1;18925:14;:23::i;:::-;18980:19;;;;:9;:19;;;;;:32;;;18907:41;;-1:-1:-1;18966:46:0;;;;;:91;;-1:-1:-1;19027:19:0;;;;:9;:19;;;;;:30;;;19016:41;;;18966:91;18963:162;;;-1:-1:-1;;;;;19077:16:0;;;;;;:9;:16;;;;;:32;;;18963:162;18743:525;;;;;;19171:1;19158:11;:14;;:41;;;;;19192:7;19176:14;:23;;19158:41;:59;;;;-1:-1:-1;19203:14:0;;19158:59;19155:113;;;-1:-1:-1;;;;;;;;19233:16:0;;;;;:9;:16;;;;;19255:1;19233:23;;18504:771::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://2ed4a1642c758e1afc5a8c6b50d7e5629c98a7d3a366064289dbfebdb5bad52c
[ 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.