Contract 0x49b4d34edcc985fea2a8fbcc11ec575283d10d87 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x07badb6e61e11521989d04b5f4cf44e0f8fa39406f60d7cadfbbc60a48775839Burn334234722022-09-22 11:47:5311 days 2 hrs ago0xc8d150b2d8d985e11d428484cb14c057ce394288 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.0010803768 30.30000002
0xb99dadf7e13b05873bedb37678342526815a5716be0255f71dec58ae2241f74eIncrease Allowan...322032402022-08-22 19:56:1841 days 18 hrs ago0xc9a1a29a0b6f771c3b341a8fb8a964e38297cc91 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00141231796 30.428706002
0x46e81ae621f7e16b0b0d5226762eb111d1e92917253e44f296cfba649261dd9fFlash Loan322030652022-08-22 19:50:1641 days 18 hrs ago0xc9a1a29a0b6f771c3b341a8fb8a964e38297cc91 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00081592 31.000000001
0x10b6c49cb5f6c37ec8f49289bb85811fd8aa76c536e737e5e6dda994f1891ae3Burn320522102022-08-19 0:51:0945 days 13 hrs ago0xc44f17db2a9999550d0ef3bb008ef9b5cdfd57b9 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.041648716924852.548860321
0xf6b9586c074a8b5d939a006130064c1f9488d18b0ac98b275d71cb24c502a9b1Approve320209702022-08-18 4:50:0246 days 9 hrs ago0x039e4a6d9633fa330918b1e6dc8183085c9e9b1e IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001583707852 34.034080178
0x3bc88a0423b381bd2df364ad3e6e6ea68b30a48c612fe930de4fcdbd19cecd6eFlash Loan314795012022-08-03 16:50:1660 days 21 hrs ago0xa219571abdc5a0762ca4cff0d8536c49da524623 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00079104 30.000000016
0x8ae6e79012e6235d21a94db21dd0a7c47f9fc014dbf210523e050885e5a41e7fBurn309245712022-07-20 5:21:1975 days 8 hrs ago0xa05357dca4564752035be3eea105f178733a8a5b IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.0016092 30.000000015
0xd680675ebdecf1aa047f5804e4756256c5c02ece6362920a9fa50e184a0647dbBurn301494242022-06-29 20:40:1395 days 17 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00302615487756.403393684
0x97101891b6dbdf1bcd2a39aa7b5260920907fe3159d832c37db4d9539633383fBurn293921802022-06-10 10:48:43115 days 3 hrs ago0x0eacbe277fd4aedbc55134eb30c6d9b103ea6d49 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001616006737 30.120158373
0x1ed6c6ca1b889decb0f1ff34fd9728559d3c36f05b9d825d7a3c2612bb0b6bf1Burn293609172022-06-09 15:43:13115 days 22 hrs ago0xc4a65da0c757c3648e69ae829f1cd6916bc035cb IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001609560001 30.000000032
0x4dad369e4a841681260f38c0989a96321aad7c323aa0b7c946d5b4d53177d774Burn293508562022-06-09 9:37:58116 days 4 hrs ago0x7551c3819e6c005aba90e1351861eb4bab58db05 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001663212089 31.000001672
0x21af46b8c82df15782c4e2954605ca134ab9ae33697f53c54f7b517486cefcaeBurn292956222022-06-08 0:44:15117 days 13 hrs ago0xac4bd05953587836dfb12843a9951570ff403c0f IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001467145373 30.070000075
0x32906c0059e0b2f2a0e53943dd7e1f5573351699116b1748438ea40371ad3bf9Burn292956062022-06-08 0:43:21117 days 13 hrs ago0xac4bd05953587836dfb12843a9951570ff403c0f IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001467145373 30.070000064
0x027107f828a4e57d56ec299b9a2b75442bc580286d2159451a0982403fd9f9deBurn292956062022-06-08 0:43:21117 days 13 hrs ago0xac4bd05953587836dfb12843a9951570ff403c0f IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001770516 33.000000015
0x6e20a9732328e59eede74cb1d1821d2f579859942e5b421aa33af432bb11a0d6Approve290486402022-06-01 21:50:41123 days 16 hrs ago0xa450217e722e8dc9168dd2820e691529e12159ad IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00080021733.000000012
0x85682112e4e985994f7d6282f0f5c19b13360fbdb45f47b4ae08469277dd9898Burn275586742022-04-25 12:49:17161 days 1 hr ago0xc44f17db2a9999550d0ef3bb008ef9b5cdfd57b9 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00236533355444.096449571
0xc196053e1420918375b7a10b4ee70b1e4d3fe900f73fc1ef33f523a99f160894Burn272037992022-04-16 11:48:46170 days 2 hrs ago0x0689f49d52d0b72911cc123587d4132f38dd37c1 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001613676452 30.069999492
0x0f4cf4246db557e268d5e8cf96efcc08e835105aff7259a622f488ac90ac8aa8Approve271890842022-04-16 2:40:54170 days 11 hrs ago0x7a70f91600490245b7d7e3f460587a1fd7f44eb2 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001897085964 40.990600134
0xa2bcdd165effb9cb348377ed7adaeb37dab0e8b3abccc0e0fb0cfa2aa2eb8b70Transfer269907962022-04-11 2:04:45175 days 11 hrs ago0x7a70f91600490245b7d7e3f460587a1fd7f44eb2 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001705935 33
0x6f09a74f913a6653e4e68f84020959c55d6245aa8f67285623bfc3203e7dad5eFlash Loan268488822022-04-07 10:27:52179 days 3 hrs ago0x654750c0643097e242651270136e9ff8343e89d1 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.00079208545 30.039648474
0x7d6ad25d9819a9dda96d0679edf9e860b675b7933e971fa777b408c093ca79faBurn268118032022-04-06 11:33:41180 days 2 hrs ago0x0689f49d52d0b72911cc123587d4132f38dd37c1 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001613315639 30.069999997
0xbec910ba1c070fd6822102287f71082a76e92bab71a13f7a25866ce30a60f6dfTransfer265663372022-03-31 5:34:54186 days 8 hrs ago0x14f45114acbf4f1090fab1301b483af09beae3c3 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001469991836 31.314399083
0xbf87adcd5cd4f5f53e592de30c5213c2a649a1d0845afb9f1a524e93458f8368Burn262486722022-03-23 1:40:38194 days 12 hrs ago0x14f45114acbf4f1090fab1301b483af09beae3c3 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001737279264 32.380512638
0x3edb9121fd326a68f113b00d80444f566068498dc7fd6c276caa25783278058eApprove258356072022-03-11 17:50:14205 days 20 hrs ago0xa090d5656c3ba77a546ba48af5a07508cc86d771 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.001493515653 32.095838506
0x1a4d008f7ba5f728b1457ff20e196c9d3c89ac669e7d1fe5253e744de9b3ecc3Transfer241724782022-01-26 4:24:24250 days 9 hrs ago0x1b649e18b81891168177d440e84289854c6c0e10 IN  0x49b4d34edcc985fea2a8fbcc11ec575283d10d870 MATIC0.004009679944 85.372281487
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xbc150b009f6dd5b7e7276195fa620e6b0ece612a7ff2caba48b4eff13c45726d338805762022-10-03 13:47:1616 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000003471865061786 MATIC
0xbc150b009f6dd5b7e7276195fa620e6b0ece612a7ff2caba48b4eff13c45726d338805762022-10-03 13:47:1616 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000112256970331063 MATIC
0xd59ca30d3474dfacd4db05db89391b947186fd3a97ac12d1fc757624e69f2bf8338804882022-10-03 13:44:1119 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.0000039321 MATIC
0xd59ca30d3474dfacd4db05db89391b947186fd3a97ac12d1fc757624e69f2bf8338804882022-10-03 13:44:1119 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.0001271379 MATIC
0x87483f64ab90b22aee0ee932ed0396b58cba8bdadac068c0ee9a54f70a0b81e8338803492022-10-03 13:39:2523 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.00000231447707099 MATIC
0x87483f64ab90b22aee0ee932ed0396b58cba8bdadac068c0ee9a54f70a0b81e8338803492022-10-03 13:39:2523 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000074834758628668 MATIC
0xbeb451d16a5da431c96bed413ce1131454ffb8b1befcc0d948c9f34e0ecab6d1338798392022-10-03 13:21:5341 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000186737311696359 MATIC
0xbeb451d16a5da431c96bed413ce1131454ffb8b1befcc0d948c9f34e0ecab6d1338798392022-10-03 13:21:5341 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.006037839744848938 MATIC
0x36180e1d85571f411cb543e2289a954696bc10707f2330db881d5db64abd0685338796182022-10-03 13:14:1948 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000812571869882667 MATIC
0x106a2b90c547dbe04fca61569a74dc4b2618ff78b38372cf2da2159be7a2628a338796002022-10-03 13:13:3949 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.001075377655366698 MATIC
0x03b7d0636be88fb40984e90922c630a15bd37cf318c3db01556d897c13082c50338795752022-10-03 13:12:4950 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000129711558586444 MATIC
0x03b7d0636be88fb40984e90922c630a15bd37cf318c3db01556d897c13082c50338795752022-10-03 13:12:4950 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.004194007060961662 MATIC
0x46a3a111c75cbb2b00d1a896220281f0990a84384981e3648655026e79db24ff338795722022-10-03 13:12:4350 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000138849664676814 MATIC
0x46a3a111c75cbb2b00d1a896220281f0990a84384981e3648655026e79db24ff338795722022-10-03 13:12:4350 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.004489472491216956 MATIC
0x0a62a7bcf19a88739e2556b6cc6e4433bac699b79046ac68f77ae28196f2d181338794982022-10-03 13:10:1153 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000156437572636413 MATIC
0x0a62a7bcf19a88739e2556b6cc6e4433bac699b79046ac68f77ae28196f2d181338794982022-10-03 13:10:1153 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.005058148181910683 MATIC
0x1d7e88e69c52c80c7762dfe770584d79acd6d6bcedccce5969a7510219e70bf1338779142022-10-03 12:15:411 hr 47 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000099646996578737 MATIC
0x1d7e88e69c52c80c7762dfe770584d79acd6d6bcedccce5969a7510219e70bf1338779142022-10-03 12:15:411 hr 47 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.003221919556045797 MATIC
0x126d7a87e548f70fd7b62f59df6292372ade3c5017639a657c750dcc70d8dc59338777492022-10-03 12:09:591 hr 53 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000011584803306655 MATIC
0x126d7a87e548f70fd7b62f59df6292372ade3c5017639a657c750dcc70d8dc59338777492022-10-03 12:09:591 hr 53 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000374575306915176 MATIC
0x2de77c7cf6769f9a691c8cc9b6a72df6b61845895ee8600334ffa8a105106a21338775692022-10-03 12:03:511 hr 59 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000096320022048808 MATIC
0x2de77c7cf6769f9a691c8cc9b6a72df6b61845895ee8600334ffa8a105106a21338775692022-10-03 12:03:511 hr 59 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.003114347379578107 MATIC
0x8fd80fdef84194752f8d54a4e10c495e6b93d965608ec697a17b8e52d68c1e35338748492022-10-03 10:30:173 hrs 33 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.00000234144929258 MATIC
0x8fd80fdef84194752f8d54a4e10c495e6b93d965608ec697a17b8e52d68c1e35338748492022-10-03 10:30:173 hrs 33 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000075706860460072 MATIC
0x7e51f1c3614bb209e54627c95ef4d4d9968daadbbfe9edcd6b91e485681250de338737922022-10-03 9:51:504 hrs 11 mins ago 0x90d861c4a115346a09c0b33e441a9fc32333cb33 0x49b4d34edcc985fea2a8fbcc11ec575283d10d870.000369043154322026 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UP

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-07-28
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}




contract OwnerRole {
  


    event OwnerRemoved(address indexed account);
    event OwnershipTransferred(address indexed previousAccount,address indexed newAccount);

    address private _owner;

    constructor ()  {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
        
    }

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

    function isOwner(address account) public view returns (bool) {
        return _owner == account;
        
    }

    function transferOwnership(address account) public onlyOwner {
        _transferOwnership(account);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner,newOwner);
        _owner = newOwner ;
        
    }

    function renounceOwnership() public onlyOwner {
       
         emit OwnershipTransferred(address(0), _owner);
        _owner = address(0);
    }
}





contract MinterRole is OwnerRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor ()  {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}



interface IBEP20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

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

    function transfer(address to, uint256 value) external returns (bool);

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

    function transferFrom(address from, address to, uint256 value)
    external returns (bool);

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

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

    event ProposalUpdated(address indexed owner,
                        uint256 proposalID,
                        bool result,
                        uint256 value);
}





/**
 * @title UnifiProtocolTokens interface (compatible with ERC20 interface)
 * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
interface UnifiProtocolTokens {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

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

    function transfer(address to, uint256 value) external returns (bool);

    function updateFeeState(uint256 fee) external returns (bool);

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

    function transferFrom(address from, address to, uint256 value)
    external returns (bool);
    
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );

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


}

interface IUnifiCallee {
    function unifiCall(address sender, uint amount0) external payable;
}


contract UP is MinterRole {

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _percentFactor = 100000;
    uint256 private _mintRate = 95000;
    uint256 private _burnRate = 100000;
    uint256 private _ulRate=100000;
    uint256 private BaseFactor =10 ;
    UnifiProtocolTokens FTToken;
    UnifiProtocolTokens DexToken;
    address FTAddress;
    uint256 private totalUPBurnt = 0;
    uint256 private totalFeesGiven = 0;
    mapping (address => uint256) private _balances;  
    mapping (address => mapping (address => uint256)) private _allowed;
    uint256 private _totalSupply;
    bool public defaultFlashLoanEnabled = false;
    uint public  defaultFlashLoanFees = 50;//0.5%
    uint public  defaultFeesDenominator = 10000;
    
    mapping(address =>bool) public flashloanEnabled;
    mapping(address =>bool) public isZeroFeeContract;
    mapping(address =>uint) public flashLoanFees;
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );

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

    constructor (uint8 _tokenDecimals,address _FTtoken) payable  {
        _name = "UPmatic";
        _symbol = "UPmatic";
        _decimals = _tokenDecimals;//set it same as blockchain decimals
        FTToken = UnifiProtocolTokens(_FTtoken);
        BaseFactor =BaseFactor ** _tokenDecimals ;
        require(msg.value>0 ,"Invalid amount");
        _mint(msg.sender, msg.value);
    }

    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param amount The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 amount) public onlyMinter payable returns (bool) {
       require(msg.value == amount);
        uint256 Value = getVirtualPriceForMinting(amount);
        uint256 MintAmount = amount*(_mintRate)*(BaseFactor)/(Value*(_percentFactor));  
        uint256 ULAmount = MintAmount*(_ulRate)/(_percentFactor);
        uint256 FTAmount = MintAmount*(_percentFactor- _ulRate)/_percentFactor;
        _mint(to, ULAmount);
  
        DexToken =  UnifiProtocolTokens(to);
        DexToken.updateFeeState(ULAmount);

        if(FTAmount > 0){
            _mint(address(FTToken), FTAmount); 
            FTToken.updateFeeState( FTAmount);            
        }
        return true;
    }


        /**
     * @dev Burns a specific amount of tokens and return the backed value
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

            /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function justBurn(uint256 value) public {
        _justBurn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }


    function getFlashloanFee(address _pool) public view returns(uint){
        if(isZeroFeeContract[_pool] == true){
            return 0;
        }else{
            return flashLoanFees[_pool]> 0?flashLoanFees[_pool]:defaultFlashLoanFees;
        }

    }
    function flashLoan( address to , uint amount) public{
        
        if((defaultFlashLoanEnabled || flashloanEnabled[msg.sender]) && amount <= address(this).balance){
            uint currentBalance = address(this).balance;
           // address(to).transfer(amount);//optimially give to user
            IUnifiCallee(to).unifiCall{value:amount}(to, amount);
            uint newBalanceMinimumAmount = currentBalance + (loanFeeAmount( msg.sender ,  amount));
            require(newBalanceMinimumAmount <= address(this).balance , 'Unifi: INSUFFICIENT_INPUT_AMOUNT'); 
        }


    }

    function loanReturnAmount(address from , uint loanAmount)public view  returns(uint){
       return  loanAmount + (loanFeeAmount(from , loanAmount));
    }
    
    function loanFeeAmount(address from , uint loanAmount)public view  returns(uint){
       return loanAmount*(getFlashloanFee(from))/(defaultFeesDenominator);
    }
    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @return the number of price of UP token
     */
    function getVirtualPrice() public view returns(uint256){
        uint256 baseTokenbal = address(this).balance;
        uint256 Value =(baseTokenbal*(BaseFactor))/(_totalSupply); 
        return Value;
    }

    function getVirtualPriceForMinting(uint value) public view returns(uint256){
        uint256 baseTokenbal = (address(this).balance)-(value);
        uint256 Value =(baseTokenbal*(BaseFactor))/(_totalSupply); 
        return Value;
    }


    function updateDefaultFlashLoanFees(uint _amount) public onlyOwner{
        defaultFlashLoanFees = _amount;
    }

    function updateDefaultFlashLoanEnable(bool _value) public onlyOwner{
        defaultFlashLoanEnabled = _value;
    }
    function updateFlashLoanFees(address _pool , uint _amount) public onlyOwner{
        flashLoanFees[_pool] = _amount;
    }
    
    function updateFlashLoanFees(address _pool , bool _value) public onlyOwner{
        flashloanEnabled[_pool] = _value;
    }
    
    function updateisZeroFeeContract(address _pool , bool _value) public onlyOwner{
        isZeroFeeContract[_pool] = _value;
    }    

    function updateFTToken(address account) public onlyOwner returns (address){
        FTToken  = UnifiProtocolTokens(account);
        FTAddress = account;
        return address(FTToken);
    }

    /**
     * @dev Total number of tokens in existence
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param _account The address to query the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address _account) public view returns (uint256) {
        return _balances[_account];
    }
    

    function getTotalFeesGiven() public view returns (uint256) {
        return totalFeesGiven;
    }


    function getTotalUPBurnt() public view returns (uint256) {
        return totalUPBurnt;
    }             
    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(
        address owner,
        address spender
    )
    public
    view
    returns (uint256)
    {
        return _allowed[owner][spender];
    }

    /**
     * @dev Transfer token for a specified address
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }


    function transferMulti(address[]memory  to, uint256[] memory value) public returns (bool) {

        uint256 i = 0;
        while (i < to.length) {
             _transfer(msg.sender,to[i] , value[i]);
            i++;
         }
         return true;
    }
    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(
        address from,
        address to,
        uint256 value
    )
    public
    returns (bool)
    {
        _allowed[from][msg.sender] = _allowed[from][msg.sender]-(value);
        _transfer(from, to, value);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    )
    public
    returns (bool)
    {
        require(spender != address(0));

        _allowed[msg.sender][spender] = (
        _allowed[msg.sender][spender] + (addedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    )
    public
    returns (bool)
    {
        require(spender != address(0));

        _allowed[msg.sender][spender] = (
        _allowed[msg.sender][spender]-(subtractedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from] - (value);
        _balances[to] = _balances[to] + (value);
        emit Transfer(from, to, value);

    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply + (value);
        _balances[account] = _balances[account] + (value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account and returns the backed value
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));
        uint256 virtualPrice = getVirtualPrice();
        uint256 redeemValue = (virtualPrice * (value)) / (BaseFactor);
        totalUPBurnt = totalUPBurnt + (value);
        totalFeesGiven = totalFeesGiven+ (redeemValue);
        payable(address(account)).transfer(redeemValue);
        _totalSupply = _totalSupply - (value);
        _balances[account] = _balances[account] - (value);
        emit Transfer(account, address(0), value);
    }


        /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _justBurn(address account, uint256 value) internal {
        require(account != address(0));
        _totalSupply = _totalSupply - (value);
        _balances[account] = _balances[account] - (value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
        // this function needs to emit an event with the updated approval.
        _allowed[account][msg.sender] = _allowed[account][msg.sender] - (
            value);
        _burn(account, value);
    }
     
    /**
     * @dev Withdraw airdrop tokens or accidental transfer
     * @param tokenAddress The aToken Address
     * @param amount Amount to withdraw
     */     
    function transferOtherTokens(address tokenAddress,uint256 amount )public onlyOwner returns (bool){
  
        require(address(this) != tokenAddress);
        IBEP20 otherTokens = IBEP20(tokenAddress);
        otherTokens.transfer(msg.sender, amount);
        return true;
    
    }
    function updateValues(string calldata fieldName,uint256 amount) public  returns (bool) {
    require(isOwner(msg.sender) ,'UPToken: NOT_AUTHORIZED');

    if(compareStrings(fieldName,"MintRate")){
      _mintRate = amount;
      return true;
    }
    else if(compareStrings(fieldName,"ULRate")){
      _ulRate = amount;
      return true;
    }
    else if(compareStrings(fieldName,"BurnRate")){
      _burnRate = amount;
      return true;
    }


    return false;
  }

   function compareStrings (string memory a, string memory b) internal pure   
       returns (bool) {
        return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b))) );

  }

      fallback() external payable {

    }

    receive() external payable {

    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint8","name":"_tokenDecimals","type":"uint8"},{"internalType":"address","name":"_FTtoken","type":"address"}],"stateMutability":"payable","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":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAccount","type":"address"},{"indexed":true,"internalType":"address","name":"newAccount","type":"address"}],"name":"OwnershipTransferred","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","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":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultFeesDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultFlashLoanEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultFlashLoanFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"flashLoan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"flashLoanFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"flashloanEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"getFlashloanFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFeesGiven","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalUPBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVirtualPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"getVirtualPriceForMinting","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isZeroFeeContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"justBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"loanAmount","type":"uint256"}],"name":"loanFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"loanAmount","type":"uint256"}],"name":"loanReturnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"","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":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"name":"transferMulti","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferOtherTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"updateDefaultFlashLoanEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateDefaultFlashLoanFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"updateFTToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateFlashLoanFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"updateFlashLoanFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"fieldName","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateValues","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"updateisZeroFeeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040819052620186a06005819055620173186006556007819055600855600a6009556000600d819055600e556012805460ff191690556032601355612710601455620023f6388190039081908339810160408190526200006191620003ce565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620000ab33620001a1565b6040805180820190915260078082526655506d6174696360c81b6020909201918252620000db9160029162000328565b506040805180820190915260078082526655506d6174696360c81b60209092019182526200010c9160039162000328565b506004805460ff191660ff8416179055600a80546001600160a01b0319166001600160a01b038316179055600954620001479083906200047e565b600955346200018d5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b604482015260640160405180910390fd5b620001993334620001f3565b50506200059d565b620001bc8160016200029e60201b620013911790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6001600160a01b0382166200020757600080fd5b806011546200021791906200041a565b6011556001600160a01b0382166000908152600f6020526040902054620002409082906200041a565b6001600160a01b0383166000818152600f60205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002929085815260200190565b60405180910390a35050565b6001600160a01b038116620002b257600080fd5b620002be8282620002ee565b15620002c957600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200030457600080fd5b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b82805462000336906200054a565b90600052602060002090601f0160209004810192826200035a5760008555620003a5565b82601f106200037557805160ff1916838001178555620003a5565b82800160010185558215620003a5579182015b82811115620003a557825182559160200191906001019062000388565b50620003b3929150620003b7565b5090565b5b80821115620003b35760008155600101620003b8565b60008060408385031215620003e1578182fd5b825160ff81168114620003f2578283fd5b60208401519092506001600160a01b03811681146200040f578182fd5b809150509250929050565b6000821982111562000430576200043062000587565b500190565b600181815b80851115620004765781600019048211156200045a576200045a62000587565b808516156200046857918102915b93841c93908002906200043a565b509250929050565b60006200048f60ff84168362000496565b9392505050565b600082620004a75750600162000322565b81620004b65750600062000322565b8160018114620004cf5760028114620004da57620004fa565b600191505062000322565b60ff841115620004ee57620004ee62000587565b50506001821b62000322565b5060208310610133831016604e8410600b84101617156200051f575081810a62000322565b6200052b838362000435565b806000190482111562000542576200054262000587565b029392505050565b600181811c908216806200055f57607f821691505b602082108114156200058157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b611e4980620005ad6000396000f3fe6080604052600436106102535760003560e01c80637f24bfef11610138578063aa271e1a116100b0578063dd62ed3e11610077578063dd62ed3e1461072c578063dea0047014610772578063e25aa5fa14610792578063e9526638146107a7578063f2fde38b146107df578063ff847a07146107ff57005b8063aa271e1a146106a1578063b27f6195146106c1578063c34bba54146106e1578063c3cad556146106f7578063cef9c4321461071757005b806398650275116100ff57806398650275146105df5780639d9e465c146105f45780639f8d519614610614578063a0114f0a14610641578063a457c2d714610661578063a9059cbb1461068157005b80637f24bfef14610540578063817d2a6e14610570578063944e2baf1461059057806395d89b41146105aa578063983b2d56146105bf57005b8063369ff12e116101cb578063479cd8cf11610192578063479cd8cf1461046557806370a082311461048557806370b3e049146104bb578063715018a6146104db578063784d3f9e146104f057806379cc67901461052057005b8063369ff12e146103dc57806339509351146103fc57806340c10f191461041c57806342966c681461042f5780634419a9801461044f57005b80632d3d62271161021a5780632d3d6227146103165780632f54bf6e146103365780632f63302b14610365578063313ce5671461038557806331abc2e8146103a757806335bce6e4146103bc57005b806306fdde031461025c578063095ea7b31461028757806318160ddd146102b757806319aa57e8146102d657806323b872dd146102f657005b3661025a57005b005b34801561026857600080fd5b5061027161081f565b60405161027e9190611c41565b60405180910390f35b34801561029357600080fd5b506102a76102a2366004611a78565b6108b1565b604051901515815260200161027e565b3480156102c357600080fd5b506011545b60405190815260200161027e565b3480156102e257600080fd5b506102a76102f1366004611a78565b61092b565b34801561030257600080fd5b506102a7610311366004611a07565b6109e6565b34801561032257600080fd5b5061025a610331366004611b62565b610a4f565b34801561034257600080fd5b506102a76103513660046119bb565b6000546001600160a01b0390811691161490565b34801561037157600080fd5b506102c8610380366004611a78565b610a79565b34801561039157600080fd5b5060045460405160ff909116815260200161027e565b3480156103b357600080fd5b50600e546102c8565b3480156103c857600080fd5b506102a76103d7366004611aa1565b610a8f565b3480156103e857600080fd5b506102c86103f7366004611c0d565b610b07565b34801561040857600080fd5b506102a7610417366004611a78565b610b3b565b6102a761042a366004611a78565b610bd6565b34801561043b57600080fd5b5061025a61044a366004611c0d565b610dc4565b34801561045b57600080fd5b506102c860135481565b34801561047157600080fd5b5061025a610480366004611c0d565b610dd1565b34801561049157600080fd5b506102c86104a03660046119bb565b6001600160a01b03166000908152600f602052604090205490565b3480156104c757600080fd5b506102a76104d6366004611b9a565b610ddb565b3480156104e757600080fd5b5061025a610f96565b3480156104fc57600080fd5b506102a761050b3660046119bb565b60156020526000908152604090205460ff1681565b34801561052c57600080fd5b5061025a61053b366004611a78565b610ff8565b34801561054c57600080fd5b506102a761055b3660046119bb565b60166020526000908152604090205460ff1681565b34801561057c57600080fd5b5061025a61058b366004611a78565b611006565b34801561059c57600080fd5b506012546102a79060ff1681565b3480156105b657600080fd5b50610271611039565b3480156105cb57600080fd5b5061025a6105da3660046119bb565b611048565b3480156105eb57600080fd5b5061025a611063565b34801561060057600080fd5b5061025a61060f366004611a78565b61106e565b34801561062057600080fd5b506102c861062f3660046119bb565b60176020526000908152604090205481565b34801561064d57600080fd5b5061025a61065c366004611c0d565b611171565b34801561066d57600080fd5b506102a761067c366004611a78565b61118d565b34801561068d57600080fd5b506102a761069c366004611a78565b6111d1565b3480156106ad57600080fd5b506102a76106bc3660046119bb565b6111e7565b3480156106cd57600080fd5b5061025a6106dc366004611a42565b6111fa565b3480156106ed57600080fd5b506102c860145481565b34801561070357600080fd5b506102c8610712366004611a78565b61123c565b34801561072357600080fd5b50600d546102c8565b34801561073857600080fd5b506102c86107473660046119d5565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205490565b34801561077e57600080fd5b5061025a61078d366004611a42565b61125e565b34801561079e57600080fd5b506102c86112a0565b3480156107b357600080fd5b506107c76107c23660046119bb565b6112b9565b6040516001600160a01b03909116815260200161027e565b3480156107eb57600080fd5b5061025a6107fa3660046119bb565b611302565b34801561080b57600080fd5b506102c861081a3660046119bb565b611322565b60606002805461082e90611d63565b80601f016020809104026020016040519081016040528092919081815260200182805461085a90611d63565b80156108a75780601f1061087c576101008083540402835291602001916108a7565b820191906000526020600020905b81548152906001019060200180831161088a57829003601f168201915b5050505050905090565b60006001600160a01b0383166108c657600080fd5b3360008181526010602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350600192915050565b600080546001600160a01b0316331461094357600080fd5b306001600160a01b038416141561095957600080fd5b60405163a9059cbb60e01b81523360048201526024810183905283906001600160a01b0382169063a9059cbb90604401602060405180830381600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db9190611b7e565b506001949350505050565b6001600160a01b0383166000908152601060209081526040808320338452909152812054610a15908390611d20565b6001600160a01b0385166000908152601060209081526040808320338452909152902055610a448484846113dd565b5060015b9392505050565b6000546001600160a01b03163314610a6657600080fd5b6012805460ff1916911515919091179055565b6000610a85838361123c565b610a489083611cc9565b6000805b8351811015610a4457610af533858381518110610ac057634e487b7160e01b600052603260045260246000fd5b6020026020010151858481518110610ae857634e487b7160e01b600052603260045260246000fd5b60200260200101516113dd565b80610aff81611d9e565b915050610a93565b600080610b148347611d20565b9050600060115460095483610b299190611d01565b610b339190611ce1565b949350505050565b60006001600160a01b038316610b5057600080fd5b3360009081526010602090815260408083206001600160a01b0387168452909152902054610b7f908390611cc9565b3360008181526010602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910161091a565b6000610be1336111e7565b610bea57600080fd5b813414610bf657600080fd5b6000610c0183610b07565b9050600060055482610c139190611d01565b600954600654610c239087611d01565b610c2d9190611d01565b610c379190611ce1565b9050600060055460085483610c4c9190611d01565b610c569190611ce1565b90506000600554600854600554610c6d9190611d20565b610c779085611d01565b610c819190611ce1565b9050610c8d8783611493565b600b80546001600160a01b0319166001600160a01b03891690811790915560405163208b003560e21b81526004810184905263822c00d490602401602060405180830381600087803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611b7e565b508015610db757600a54610d37906001600160a01b031682611493565b600a5460405163208b003560e21b8152600481018390526001600160a01b039091169063822c00d490602401602060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db59190611b7e565b505b5060019695505050505050565b610dce3382611526565b50565b610dce338261163a565b600080546001600160a01b03163314610e3b5760405162461bcd60e51b815260206004820152601760248201527f5550546f6b656e3a204e4f545f415554484f52495a454400000000000000000060448201526064015b60405180910390fd5b610e9a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260088152674d696e745261746560c01b602082015291506116be9050565b15610eac575060068190556001610a48565b610f0984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526006815265554c5261746560d01b602082015291506116be9050565b15610f1b575060088190556001610a48565b610f7a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260088152674275726e5261746560c01b602082015291506116be9050565b15610f8c575060078190556001610a48565b5060009392505050565b6000546001600160a01b03163314610fad57600080fd5b600080546040516001600160a01b0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600080546001600160a01b0319169055565b6110028282611717565b5050565b6000546001600160a01b0316331461101d57600080fd5b6001600160a01b03909116600090815260176020526040902055565b60606003805461082e90611d63565b611051336111e7565b61105a57600080fd5b610dce81611774565b61106c336117b6565b565b60125460ff168061108e57503360009081526015602052604090205460ff165b801561109a5750478111155b1561100257604051638f1b825b60e01b81526001600160a01b03831660048201819052602482018390524791638f1b825b9084906044016000604051808303818588803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b5050505050600061110f338461123c565b6111199083611cc9565b90504781111561116b5760405162461bcd60e51b815260206004820181905260248201527f556e6966693a20494e53554646494349454e545f494e5055545f414d4f554e546044820152606401610e32565b50505050565b6000546001600160a01b0316331461118857600080fd5b601355565b60006001600160a01b0383166111a257600080fd5b3360009081526010602090815260408083206001600160a01b0387168452909152902054610b7f908390611d20565b60006111de3384846113dd565b50600192915050565b60006111f46001836117f8565b92915050565b6000546001600160a01b0316331461121157600080fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060145461124a84611322565b6112549084611d01565b610a489190611ce1565b6000546001600160a01b0316331461127557600080fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6000804790506000601154600954836112549190611d01565b600080546001600160a01b031633146112d157600080fd5b50600a80546001600160a01b0383166001600160a01b03199182168117909255600c8054909116821790555b919050565b6000546001600160a01b0316331461131957600080fd5b610dce8161182d565b6001600160a01b03811660009081526016602052604081205460ff1615156001141561135057506000919050565b6001600160a01b038216600090815260176020526040902054611375576013546111f4565b506001600160a01b031660009081526017602052604090205490565b6001600160a01b0381166113a457600080fd5b6113ae82826117f8565b156113b857600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b0382166113f057600080fd5b6001600160a01b0383166000908152600f6020526040902054611414908290611d20565b6001600160a01b038085166000908152600f60205260408082209390935590841681522054611444908290611cc9565b6001600160a01b038084166000818152600f60205260409081902093909355915190851690600080516020611df4833981519152906114869085815260200190565b60405180910390a3505050565b6001600160a01b0382166114a657600080fd5b806011546114b49190611cc9565b6011556001600160a01b0382166000908152600f60205260409020546114db908290611cc9565b6001600160a01b0383166000818152600f6020526040808220939093559151909190600080516020611df48339815191529061151a9085815260200190565b60405180910390a35050565b6001600160a01b03821661153957600080fd5b60006115436112a0565b9050600060095483836115569190611d01565b6115609190611ce1565b905082600d546115709190611cc9565b600d55600e54611581908290611cc9565b600e556040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156115ba573d6000803e3d6000fd5b50826011546115c99190611d20565b6011556001600160a01b0384166000908152600f60205260409020546115f0908490611d20565b6001600160a01b0385166000818152600f6020526040808220939093559151600080516020611df48339815191529061162c9087815260200190565b60405180910390a350505050565b6001600160a01b03821661164d57600080fd5b8060115461165b9190611d20565b6011556001600160a01b0382166000908152600f6020526040902054611682908290611d20565b6001600160a01b0383166000818152600f6020526040808220939093559151600080516020611df48339815191529061151a9085815260200190565b6000816040516020016116d19190611c25565b60405160208183030381529060405280519060200120836040516020016116f89190611c25565b6040516020818303038152906040528051906020012014905092915050565b6001600160a01b0382166000908152601060209081526040808320338452909152902054611746908290611d20565b6001600160a01b03831660009081526010602090815260408083203384529091529020556110028282611526565b61177f600182611391565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6117c16001826118ed565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661180d57600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0381166118925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e32565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661190057600080fd5b61190a82826117f8565b61191357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b80356001600160a01b03811681146112fd57600080fd5b600082601f83011261195c578081fd5b8135602061197161196c83611ca5565b611c74565b80838252828201915082860187848660051b8901011115611990578586fd5b855b858110156119ae57813584529284019290840190600101611992565b5090979650505050505050565b6000602082840312156119cc578081fd5b610a4882611935565b600080604083850312156119e7578081fd5b6119f083611935565b91506119fe60208401611935565b90509250929050565b600080600060608486031215611a1b578081fd5b611a2484611935565b9250611a3260208501611935565b9150604084013590509250925092565b60008060408385031215611a54578182fd5b611a5d83611935565b91506020830135611a6d81611de5565b809150509250929050565b60008060408385031215611a8a578182fd5b611a9383611935565b946020939093013593505050565b60008060408385031215611ab3578182fd5b823567ffffffffffffffff80821115611aca578384fd5b818501915085601f830112611add578384fd5b81356020611aed61196c83611ca5565b8083825282820191508286018a848660051b8901011115611b0c578889fd5b8896505b84871015611b3557611b2181611935565b835260019690960195918301918301611b10565b5096505086013592505080821115611b4b578283fd5b50611b588582860161194c565b9150509250929050565b600060208284031215611b73578081fd5b8135610a4881611de5565b600060208284031215611b8f578081fd5b8151610a4881611de5565b600080600060408486031215611bae578283fd5b833567ffffffffffffffff80821115611bc5578485fd5b818601915086601f830112611bd8578485fd5b813581811115611be6578586fd5b876020828501011115611bf7578586fd5b6020928301989097509590910135949350505050565b600060208284031215611c1e578081fd5b5035919050565b60008251611c37818460208701611d37565b9190910192915050565b6020815260008251806020840152611c60816040850160208701611d37565b601f01601f19169190910160400192915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c9d57611c9d611dcf565b604052919050565b600067ffffffffffffffff821115611cbf57611cbf611dcf565b5060051b60200190565b60008219821115611cdc57611cdc611db9565b500190565b600082611cfc57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d1b57611d1b611db9565b500290565b600082821015611d3257611d32611db9565b500390565b60005b83811015611d52578181015183820152602001611d3a565b8381111561116b5750506000910152565b600181811c90821680611d7757607f821691505b60208210811415611d9857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611db257611db2611db9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610dce57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122035ffa30f59f21f527664bc914f0bfce447d511af28bb1b0de4c09eaa6866ce0064736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000007a70f91600490245b7d7e3f460587a1fd7f44eb2

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

00000000000000000000000000000000000000000000000000000000000000120000000000000000000000007a70f91600490245b7d7e3f460587a1fd7f44eb2

-----Decoded View---------------
Arg [0] : _tokenDecimals (uint8): 18
Arg [1] : _FTtoken (address): 0x7a70f91600490245b7d7e3f460587a1fd7f44eb2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [1] : 0000000000000000000000007a70f91600490245b7d7e3f460587a1fd7f44eb2


Deployed ByteCode Sourcemap

5094:15884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9767:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14045:244;;;;;;;;;;-1:-1:-1;14045:244:0;;;;;:::i;:::-;;:::i;:::-;;;5890:14:1;;5883:22;5865:41;;5853:2;5838:18;14045:244:0;5820:92:1;11641:91:0;;;;;;;;;;-1:-1:-1;11712:12:0;;11641:91;;;7571:25:1;;;7559:2;7544:18;11641:91:0;7526:76:1;19893:289:0;;;;;;;;;;-1:-1:-1;19893:289:0;;;;;:::i;:::-;;:::i;14583:275::-;;;;;;;;;;-1:-1:-1;14583:275:0;;;;;:::i;:::-;;:::i;10831:118::-;;;;;;;;;;-1:-1:-1;10831:118:0;;;;;:::i;:::-;;:::i;1465:114::-;;;;;;;;;;-1:-1:-1;1465:114:0;;;;;:::i;:::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;;;:17;;;;1465:114;9372:156;;;;;;;;;;-1:-1:-1;9372:156:0;;;;;:::i;:::-;;:::i;10083:83::-;;;;;;;;;;-1:-1:-1;10149:9:0;;10083:83;;10149:9;;;;7749:36:1;;7737:2;7722:18;10083:83:0;7704:87:1;12081:99:0;;;;;;;;;;-1:-1:-1;12158:14:0;;12081:99;;13136:264;;;;;;;;;;-1:-1:-1;13136:264:0;;;;;:::i;:::-;;:::i;10458:240::-;;;;;;;;;;-1:-1:-1;10458:240:0;;;;;:::i;:::-;;:::i;15340:374::-;;;;;;;;;;-1:-1:-1;15340:374:0;;;;;:::i;:::-;;:::i;6950:722::-;;;;;;:::i;:::-;;:::i;7834:79::-;;;;;;;;;;-1:-1:-1;7834:79:0;;;;;:::i;:::-;;:::i;5803:38::-;;;;;;;;;;;;;;;;8050:87;;;;;;;;;;-1:-1:-1;8050:87:0;;;;;:::i;:::-;;:::i;11955:112::-;;;;;;;;;;-1:-1:-1;11955:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;12040:19:0;12013:7;12040:19;;;:9;:19;;;;;;;11955:112;20188:489;;;;;;;;;;-1:-1:-1;20188:489:0;;;;;:::i;:::-;;:::i;1949:150::-;;;;;;;;;;;;;:::i;5910:47::-;;;;;;;;;;-1:-1:-1;5910:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8396:95;;;;;;;;;;-1:-1:-1;8396:95:0;;;;;:::i;:::-;;:::i;5964:48::-;;;;;;;;;;-1:-1:-1;5964:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10955:124;;;;;;;;;;-1:-1:-1;10955:124:0;;;;;:::i;:::-;;:::i;5753:43::-;;;;;;;;;;-1:-1:-1;5753:43:0;;;;;;;;9917:87;;;;;;;;;;;;;:::i;2599:92::-;;;;;;;;;;-1:-1:-1;2599:92:0;;;;;:::i;:::-;;:::i;2699:77::-;;;;;;;;;;;;;:::i;8766:598::-;;;;;;;;;;-1:-1:-1;8766:598:0;;;;;:::i;:::-;;:::i;6019:44::-;;;;;;;;;;-1:-1:-1;6019:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10708:115;;;;;;;;;;-1:-1:-1;10708:115:0;;;;;:::i;:::-;;:::i;16201:382::-;;;;;;;;;;-1:-1:-1;16201:382:0;;;;;:::i;:::-;;:::i;12986:140::-;;;;;;;;;;-1:-1:-1;12986:140:0;;;;;:::i;:::-;;:::i;2482:109::-;;;;;;;;;;-1:-1:-1;2482:109:0;;;;;:::i;:::-;;:::i;11228:130::-;;;;;;;;;;-1:-1:-1;11228:130:0;;;;;:::i;:::-;;:::i;5854:43::-;;;;;;;;;;;;;;;;9540:164;;;;;;;;;;-1:-1:-1;9540:164:0;;;;;:::i;:::-;;:::i;12190:95::-;;;;;;;;;;-1:-1:-1;12265:12:0;;12190:95;;12635:176;;;;;;;;;;-1:-1:-1;12635:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;12779:15:0;;;12747:7;12779:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;12635:176;11091:125;;;;;;;;;;-1:-1:-1;11091:125:0;;;;;:::i;:::-;;:::i;10240:210::-;;;;;;;;;;;;;:::i;11370:196::-;;;;;;;;;;-1:-1:-1;11370:196:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5402:32:1;;;5384:51;;5372:2;5357:18;11370:196:0;5339:102:1;1587:107:0;;;;;;;;;;-1:-1:-1;1587:107:0;;;;;:::i;:::-;;:::i;8501:259::-;;;;;;;;;;-1:-1:-1;8501:259:0;;;;;:::i;:::-;;:::i;9767:83::-;9804:13;9837:5;9830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9767:83;:::o;14045:244::-;14110:4;-1:-1:-1;;;;;14135:21:0;;14127:30;;;;;;14179:10;14170:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;14170:29:0;;;;;;;;;;;;:37;;;14223:36;7571:25:1;;;14170:29:0;;14179:10;14223:36;;7544:18:1;14223:36:0;;;;;;;;-1:-1:-1;14277:4:0;14045:244;;;;:::o;19893:289::-;19985:4;1544:6;;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;20021:4:::1;-1:-1:-1::0;;;;;20013:29:0;::::1;;;20005:38;;;::::0;::::1;;20106:40;::::0;-1:-1:-1;;;20106:40:0;;20127:10:::1;20106:40;::::0;::::1;5620:51:1::0;5687:18;;;5680:34;;;20082:12:0;;-1:-1:-1;;;;;20106:20:0;::::1;::::0;::::1;::::0;5593:18:1;;20106:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;20164:4:0::1;::::0;19893:289;-1:-1:-1;;;;19893:289:0:o;14583:275::-;-1:-1:-1;;;;;14757:14:0;;14706:4;14757:14;;;:8;:14;;;;;;;;14772:10;14757:26;;;;;;;;:34;;14785:5;;14757:34;:::i;:::-;-1:-1:-1;;;;;14728:14:0;;;;;;:8;:14;;;;;;;;14743:10;14728:26;;;;;;;:63;14802:26;14737:4;14818:2;14822:5;14802:9;:26::i;:::-;-1:-1:-1;14846:4:0;14583:275;;;;;;:::o;10831:118::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;10909:23:::1;:32:::0;;-1:-1:-1;;10909:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10831:118::o;9372:156::-;9450:4;9487:32;9501:4;9508:10;9487:13;:32::i;:::-;9473:47;;:10;:47;:::i;13136:264::-;13220:4;;13263:107;13274:2;:9;13270:1;:13;13263:107;;;13301:38;13311:10;13322:2;13325:1;13322:5;;;;;;-1:-1:-1;;;13322:5:0;;;;;;;;;;;;;;;13330;13336:1;13330:8;;;;;;-1:-1:-1;;;13330:8:0;;;;;;;;;;;;;;;13301:9;:38::i;:::-;13354:3;;;;:::i;:::-;;;;13263:107;;10458:240;10525:7;;10567:31;10592:5;10568:21;10567:31;:::i;:::-;10544:54;;10609:13;10653:12;;10639:10;;10625:12;:25;;;;:::i;:::-;10624:42;;;;:::i;:::-;10609:57;10458:240;-1:-1:-1;;;;10458:240:0:o;15340:374::-;15455:4;-1:-1:-1;;;;;15485:21:0;;15477:30;;;;;;15572:10;15563:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;15563:29:0;;;;;;;;;;:44;;15596:10;;15563:44;:::i;:::-;15529:10;15520:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;15520:29:0;;;;;;;;;;;;:88;;;15624:60;7571:25:1;;;15520:29:0;;15624:60;;7544:18:1;15624:60:0;7526:76:1;6950:722:0;7027:4;2433:20;2442:10;2433:8;:20::i;:::-;2425:29;;;;;;7064:6:::1;7051:9;:19;7043:28;;;::::0;::::1;;7082:13;7098:33;7124:6;7098:25;:33::i;:::-;7082:49;;7142:18;7203:14;;7196:5;:22;;;;:::i;:::-;7183:10;::::0;7171:9:::1;::::0;7163:18:::1;::::0;:6;:18:::1;:::i;:::-;:31;;;;:::i;:::-;:56;;;;:::i;:::-;7142:77;;7232:16;7273:14;;7263:7;;7251:10;:20;;;;:::i;:::-;:37;;;;:::i;:::-;7232:56;;7299:16;7355:14;;7346:7;;7330:14;;:23;;;;:::i;:::-;7318:36;::::0;:10;:36:::1;:::i;:::-;:51;;;;:::i;:::-;7299:70;;7380:19;7386:2;7390:8;7380:5;:19::i;:::-;7414:8;:35:::0;;-1:-1:-1;;;;;;7414:35:0::1;-1:-1:-1::0;;;;;7414:35:0;::::1;::::0;;::::1;::::0;;;7460:33:::1;::::0;-1:-1:-1;;;7460:33:0;;::::1;::::0;::::1;7571:25:1::0;;;7460:23:0::1;::::0;7544:18:1;;7460:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7509:12:0;;7506:137:::1;;7551:7;::::0;7537:33:::1;::::0;-1:-1:-1;;;;;7551:7:0::1;7561:8:::0;7537:5:::1;:33::i;:::-;7586:7;::::0;:33:::1;::::0;-1:-1:-1;;;7586:33:0;;::::1;::::0;::::1;7571:25:1::0;;;-1:-1:-1;;;;;7586:7:0;;::::1;::::0;:22:::1;::::0;7544:18:1;;7586:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7506:137;-1:-1:-1::0;7660:4:0::1;::::0;6950:722;-1:-1:-1;;;;;;6950:722:0:o;7834:79::-;7881:24;7887:10;7899:5;7881;:24::i;:::-;7834:79;:::o;8050:87::-;8101:28;8111:10;8123:5;8101:9;:28::i;20188:489::-;20269:4;1544:6;;-1:-1:-1;;;;;1544:6:0;20298:10;1544:17;20282:55;;;;-1:-1:-1;;;20282:55:0;;6507:2:1;20282:55:0;;;6489:21:1;6546:2;6526:18;;;6519:30;6585:25;6565:18;;;6558:53;6628:18;;20282:55:0;;;;;;;;;20349:36;20364:9;;20349:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20349:36:0;;;;;;;;;;;;-1:-1:-1;;;20349:36:0;;;;;-1:-1:-1;20349:14:0;;-1:-1:-1;20349:36:0:i;:::-;20346:303;;;-1:-1:-1;20395:9:0;:18;;;20429:4;20422:11;;20346:303;20455:34;20470:9;;20455:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20455:34:0;;;;;;;;;;;;-1:-1:-1;;;20455:34:0;;;;;-1:-1:-1;20455:14:0;;-1:-1:-1;20455:34:0:i;:::-;20452:197;;;-1:-1:-1;20499:7:0;:16;;;20531:4;20524:11;;20452:197;20557:36;20572:9;;20557:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20557:36:0;;;;;;;;;;;;-1:-1:-1;;;20557:36:0;;;;;-1:-1:-1;20557:14:0;;-1:-1:-1;20557:36:0:i;:::-;20554:95;;;-1:-1:-1;20603:9:0;:18;;;20637:4;20630:11;;20554:95;-1:-1:-1;20666:5:0;20188:489;;;;;:::o;1949:150::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;2054:6:::1;::::0;;2021:40:::1;::::0;-1:-1:-1;;;;;2054:6:0;;::::1;::::0;;2021:40:::1;::::0;2054:6;;2021:40:::1;2089:1;2072:19:::0;;-1:-1:-1;;;;;;2072:19:0::1;::::0;;1949:150::o;8396:95::-;8461:22;8471:4;8477:5;8461:9;:22::i;:::-;8396:95;;:::o;10955:124::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;-1:-1:-1;;;;;11041:20:0;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:30;10955:124::o;9917:87::-;9956:13;9989:7;9982:14;;;;;:::i;2599:92::-;2433:20;2442:10;2433:8;:20::i;:::-;2425:29;;;;;;2664:19:::1;2675:7;2664:10;:19::i;2699:77::-:0;2743:25;2757:10;2743:13;:25::i;:::-;2699:77::o;8766:598::-;8843:23;;;;;:55;;-1:-1:-1;8887:10:0;8870:28;;;;:16;:28;;;;;;;;8843:55;8842:92;;;;;8913:21;8903:6;:31;;8842:92;8839:514;;;9078:52;;-1:-1:-1;;;9078:52:0;;-1:-1:-1;;;;;9078:26:0;;:52;;;5620:51:1;;;5687:18;;;5680:34;;;8972:21:0;;9078:26;;9111:6;;5593:18:1;;9078:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9145:28;9194:36;9209:10;9223:6;9194:13;:36::i;:::-;9176:55;;:14;:55;:::i;:::-;9145:86;;9281:21;9254:23;:48;;9246:94;;;;-1:-1:-1;;;9246:94:0;;7266:2:1;9246:94:0;;;7248:21:1;;;7285:18;;;7278:30;7344:34;7324:18;;;7317:62;7396:18;;9246:94:0;7238:182:1;9246:94:0;8839:514;;8766:598;;:::o;10708:115::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;10785:20:::1;:30:::0;10708:115::o;16201:382::-;16321:4;-1:-1:-1;;;;;16351:21:0;;16343:30;;;;;;16438:10;16429:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;16429:29:0;;;;;;;;;;:47;;16460:15;;16429:47;:::i;12986:140::-;13047:4;13064:32;13074:10;13086:2;13090:5;13064:9;:32::i;:::-;-1:-1:-1;13114:4:0;12986:140;;;;:::o;2482:109::-;2538:4;2562:21;:8;2575:7;2562:12;:21::i;:::-;2555:28;2482:109;-1:-1:-1;;2482:109:0:o;11228:130::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;-1:-1:-1;;;;;11317:24:0;;;::::1;;::::0;;;:17:::1;:24;::::0;;;;:33;;-1:-1:-1;;11317:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11228:130::o;9540:164::-;9615:4;9673:22;;9649:21;9665:4;9649:15;:21::i;:::-;9637:34;;:10;:34;:::i;:::-;:59;;;;:::i;11091:125::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;-1:-1:-1;;;;;11176:23:0;;;::::1;;::::0;;;:16:::1;:23;::::0;;;;:32;;-1:-1:-1;;11176:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11091:125::o;10240:210::-;10287:7;10306:20;10329:21;10306:44;;10361:13;10405:12;;10391:10;;10377:12;:25;;;;:::i;11370:196::-;11436:7;1544:6;;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;-1:-1:-1;11455:7:0::1;:39:::0;;-1:-1:-1;;;;;11455:39:0;::::1;-1:-1:-1::0;;;;;;11455:39:0;;::::1;::::0;::::1;::::0;;;11505:9:::1;:19:::0;;;;::::1;::::0;::::1;::::0;;1448:1:::1;11370:196:::0;;;:::o;1587:107::-;1520:4;1544:6;-1:-1:-1;;;;;1544:6:0;1424:10;1544:17;1408:28;;;;;;1659:27:::1;1678:7;1659:18;:27::i;8501:259::-:0;-1:-1:-1;;;;;8580:24:0;;8561:4;8580:24;;;:17;:24;;;;;;;;:32;;:24;:32;8577:174;;;-1:-1:-1;8635:1:0;;8501:259;-1:-1:-1;8501:259:0:o;8577:174::-;-1:-1:-1;;;;;8674:20:0;;8696:1;8674:20;;;:13;:20;;;;;;:65;;8719:20;;8674:65;;;-1:-1:-1;;;;;;8698:20:0;;;;;:13;:20;;;;;;;8501:259::o;312:186::-;-1:-1:-1;;;;;389:21:0;;381:30;;;;;;431:18;435:4;441:7;431:3;:18::i;:::-;430:19;422:28;;;;;;-1:-1:-1;;;;;463:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;463:27:0;486:4;463:27;;;312:186::o;16810:262::-;-1:-1:-1;;;;;16898:16:0;;16890:25;;;;;;-1:-1:-1;;;;;16946:15:0;;;;;;:9;:15;;;;;;:25;;16965:5;;16946:25;:::i;:::-;-1:-1:-1;;;;;16928:15:0;;;;;;;:9;:15;;;;;;:43;;;;16998:13;;;;;;;:23;;17015:5;;16998:23;:::i;:::-;-1:-1:-1;;;;;16982:13:0;;;;;;;:9;:13;;;;;;;:39;;;;17037:25;;;;;;-1:-1:-1;;;;;;;;;;;17037:25:0;;;17056:5;7571:25:1;;7559:2;7544:18;;7526:76;17037:25:0;;;;;;;;16810:262;;;:::o;17424:267::-;-1:-1:-1;;;;;17499:21:0;;17491:30;;;;;;17565:5;17549:12;;:22;;;;:::i;:::-;17534:12;:37;-1:-1:-1;;;;;17603:18:0;;;;;;:9;:18;;;;;;:28;;17625:5;;17603:28;:::i;:::-;-1:-1:-1;;;;;17582:18:0;;;;;;:9;:18;;;;;;:49;;;;17647:36;;17582:18;;;-1:-1:-1;;;;;;;;;;;17647:36:0;;;17677:5;7571:25:1;;7559:2;7544:18;;7526:76;17647:36:0;;;;;;;;17424:267;;:::o;17953:551::-;-1:-1:-1;;;;;18028:21:0;;18020:30;;;;;;18061:20;18084:17;:15;:17::i;:::-;18061:40;;18112:19;18162:10;;18151:5;18135:12;:22;;;;:::i;:::-;18134:39;;;;:::i;:::-;18112:61;;18215:5;18199:12;;:22;;;;:::i;:::-;18184:12;:37;18249:14;;:29;;18266:11;;18249:29;:::i;:::-;18232:14;:46;18289:47;;-1:-1:-1;;;;;18289:34:0;;;:47;;;;;18324:11;;18289:47;;;;18324:11;18289:34;:47;;;;;;;;;;;;;;;;;;;;;18378:5;18362:12;;:22;;;;:::i;:::-;18347:12;:37;-1:-1:-1;;;;;18416:18:0;;;;;;:9;:18;;;;;;:28;;18438:5;;18416:28;:::i;:::-;-1:-1:-1;;;;;18395:18:0;;;;;;:9;:18;;;;;;:49;;;;18460:36;;-1:-1:-1;;;;;;;;;;;18460:36:0;;;18490:5;7571:25:1;;7559:2;7544:18;;7526:76;18460:36:0;;;;;;;;17953:551;;;;:::o;18744:269::-;-1:-1:-1;;;;;18823:21:0;;18815:30;;;;;;18887:5;18871:12;;:22;;;;:::i;:::-;18856:12;:37;-1:-1:-1;;;;;18925:18:0;;;;;;:9;:18;;;;;;:28;;18947:5;;18925:28;:::i;:::-;-1:-1:-1;;;;;18904:18:0;;;;;;:9;:18;;;;;;:49;;;;18969:36;;-1:-1:-1;;;;;;;;;;;18969:36:0;;;18999:5;7571:25:1;;7559:2;7544:18;;7526:76;20684:196:0;20777:4;20866:1;20848:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;20838:32;;;;;;20830:1;20812:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;20802:32;;;;;;:68;20794:78;;20684:196;;;;:::o;19344:365::-;-1:-1:-1;;;;;19616:17:0;;;;;;:8;:17;;;;;;;;19634:10;19616:29;;;;;;;;:53;;19663:5;;19616:53;:::i;:::-;-1:-1:-1;;;;;19584:17:0;;;;;;:8;:17;;;;;;;;19602:10;19584:29;;;;;;;:85;19680:21;19593:7;19695:5;19680;:21::i;2784:122::-;2841:21;:8;2854:7;2841:12;:21::i;:::-;2878:20;;-1:-1:-1;;;;;2878:20:0;;;;;;;;2784:122;:::o;2914:130::-;2974:24;:8;2990:7;2974:15;:24::i;:::-;3014:22;;-1:-1:-1;;;;;3014:22:0;;;;;;;;2914:130;:::o;860:165::-;932:4;-1:-1:-1;;;;;957:21:0;;949:30;;;;;;-1:-1:-1;;;;;;997:20:0;:11;:20;;;;;;;;;;;;;;;860:165::o;1702:239::-;-1:-1:-1;;;;;1776:22:0;;1768:73;;;;-1:-1:-1;;;1768:73:0;;6859:2:1;1768:73:0;;;6841:21:1;6898:2;6878:18;;;6871:30;6937:34;6917:18;;;6910:62;-1:-1:-1;;;6988:18:1;;;6981:36;7034:19;;1768:73:0;6831:228:1;1768:73:0;1878:6;;;1857:37;;-1:-1:-1;;;;;1857:37:0;;;;1878:6;;;1857:37;;;1905:6;:17;;-1:-1:-1;;;;;;1905:17:0;-1:-1:-1;;;;;1905:17:0;;;;;;;;;;1702:239::o;577:189::-;-1:-1:-1;;;;;657:21:0;;649:30;;;;;;698:18;702:4;708:7;698:3;:18::i;:::-;690:27;;;;;;-1:-1:-1;;;;;730:20:0;753:5;730:20;;;;;;;;;;;:28;;-1:-1:-1;;730:28:0;;;577:189::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:693;246:5;299:3;292:4;284:6;280:17;276:27;266:2;;321:5;314;307:20;266:2;361:6;348:20;387:4;411:60;427:43;467:2;427:43;:::i;:::-;411:60;:::i;:::-;493:3;517:2;512:3;505:15;545:2;540:3;536:12;529:19;;580:2;572:6;568:15;632:3;627:2;621;618:1;614:10;606:6;602:23;598:32;595:41;592:2;;;653:5;646;639:20;592:2;679:5;693:163;707:2;704:1;701:9;693:163;;;764:17;;752:30;;802:12;;;;834;;;;725:1;718:9;693:163;;;-1:-1:-1;874:5:1;;256:629;-1:-1:-1;;;;;;;256:629:1:o;890:196::-;949:6;1002:2;990:9;981:7;977:23;973:32;970:2;;;1023:6;1015;1008:22;970:2;1051:29;1070:9;1051:29;:::i;1091:270::-;1159:6;1167;1220:2;1208:9;1199:7;1195:23;1191:32;1188:2;;;1241:6;1233;1226:22;1188:2;1269:29;1288:9;1269:29;:::i;:::-;1259:39;;1317:38;1351:2;1340:9;1336:18;1317:38;:::i;:::-;1307:48;;1178:183;;;;;:::o;1366:338::-;1443:6;1451;1459;1512:2;1500:9;1491:7;1487:23;1483:32;1480:2;;;1533:6;1525;1518:22;1480:2;1561:29;1580:9;1561:29;:::i;:::-;1551:39;;1609:38;1643:2;1632:9;1628:18;1609:38;:::i;:::-;1599:48;;1694:2;1683:9;1679:18;1666:32;1656:42;;1470:234;;;;;:::o;1709:325::-;1774:6;1782;1835:2;1823:9;1814:7;1810:23;1806:32;1803:2;;;1856:6;1848;1841:22;1803:2;1884:29;1903:9;1884:29;:::i;:::-;1874:39;;1963:2;1952:9;1948:18;1935:32;1976:28;1998:5;1976:28;:::i;:::-;2023:5;2013:15;;;1793:241;;;;;:::o;2039:264::-;2107:6;2115;2168:2;2156:9;2147:7;2143:23;2139:32;2136:2;;;2189:6;2181;2174:22;2136:2;2217:29;2236:9;2217:29;:::i;:::-;2207:39;2293:2;2278:18;;;;2265:32;;-1:-1:-1;;;2126:177:1:o;2308:1212::-;2426:6;2434;2487:2;2475:9;2466:7;2462:23;2458:32;2455:2;;;2508:6;2500;2493:22;2455:2;2553:9;2540:23;2582:18;2623:2;2615:6;2612:14;2609:2;;;2644:6;2636;2629:22;2609:2;2687:6;2676:9;2672:22;2662:32;;2732:7;2725:4;2721:2;2717:13;2713:27;2703:2;;2759:6;2751;2744:22;2703:2;2800;2787:16;2822:4;2846:60;2862:43;2902:2;2862:43;:::i;2846:60::-;2928:3;2952:2;2947:3;2940:15;2980:2;2975:3;2971:12;2964:19;;3011:2;3007;3003:11;3059:7;3054:2;3048;3045:1;3041:10;3037:2;3033:19;3029:28;3026:41;3023:2;;;3085:6;3077;3070:22;3023:2;3112:6;3103:15;;3127:169;3141:2;3138:1;3135:9;3127:169;;;3198:23;3217:3;3198:23;:::i;:::-;3186:36;;3159:1;3152:9;;;;;3242:12;;;;3274;;3127:169;;;-1:-1:-1;3315:5:1;-1:-1:-1;;3358:18:1;;3345:32;;-1:-1:-1;;3389:16:1;;;3386:2;;;3423:6;3415;3408:22;3386:2;;3451:63;3506:7;3495:8;3484:9;3480:24;3451:63;:::i;:::-;3441:73;;;2445:1075;;;;;:::o;3525:251::-;3581:6;3634:2;3622:9;3613:7;3609:23;3605:32;3602:2;;;3655:6;3647;3640:22;3602:2;3699:9;3686:23;3718:28;3740:5;3718:28;:::i;3781:255::-;3848:6;3901:2;3889:9;3880:7;3876:23;3872:32;3869:2;;;3922:6;3914;3907:22;3869:2;3959:9;3953:16;3978:28;4000:5;3978:28;:::i;4041:716::-;4121:6;4129;4137;4190:2;4178:9;4169:7;4165:23;4161:32;4158:2;;;4211:6;4203;4196:22;4158:2;4256:9;4243:23;4285:18;4326:2;4318:6;4315:14;4312:2;;;4347:6;4339;4332:22;4312:2;4390:6;4379:9;4375:22;4365:32;;4435:7;4428:4;4424:2;4420:13;4416:27;4406:2;;4462:6;4454;4447:22;4406:2;4507;4494:16;4533:2;4525:6;4522:14;4519:2;;;4554:6;4546;4539:22;4519:2;4606:7;4599:4;4590:6;4586:2;4582:15;4578:26;4575:39;4572:2;;;4632:6;4624;4617:22;4572:2;4668:4;4660:13;;;;4692:6;;-1:-1:-1;4730:20:1;;;;4717:34;;4148:609;-1:-1:-1;;;;4148:609:1:o;4762:190::-;4821:6;4874:2;4862:9;4853:7;4849:23;4845:32;4842:2;;;4895:6;4887;4880:22;4842:2;-1:-1:-1;4923:23:1;;4832:120;-1:-1:-1;4832:120:1:o;4957:276::-;5088:3;5126:6;5120:13;5142:53;5188:6;5183:3;5176:4;5168:6;5164:17;5142:53;:::i;:::-;5211:16;;;;;5096:137;-1:-1:-1;;5096:137:1:o;5917:383::-;6066:2;6055:9;6048:21;6029:4;6098:6;6092:13;6141:6;6136:2;6125:9;6121:18;6114:34;6157:66;6216:6;6211:2;6200:9;6196:18;6191:2;6183:6;6179:15;6157:66;:::i;:::-;6284:2;6263:15;-1:-1:-1;;6259:29:1;6244:45;;;;6291:2;6240:54;;6038:262;-1:-1:-1;;6038:262:1:o;7796:275::-;7867:2;7861:9;7932:2;7913:13;;-1:-1:-1;;7909:27:1;7897:40;;7967:18;7952:34;;7988:22;;;7949:62;7946:2;;;8014:18;;:::i;:::-;8050:2;8043:22;7841:230;;-1:-1:-1;7841:230:1:o;8076:183::-;8136:4;8169:18;8161:6;8158:30;8155:2;;;8191:18;;:::i;:::-;-1:-1:-1;8236:1:1;8232:14;8248:4;8228:25;;8145:114::o;8264:128::-;8304:3;8335:1;8331:6;8328:1;8325:13;8322:2;;;8341:18;;:::i;:::-;-1:-1:-1;8377:9:1;;8312:80::o;8397:217::-;8437:1;8463;8453:2;;-1:-1:-1;;;8488:31:1;;8542:4;8539:1;8532:15;8570:4;8495:1;8560:15;8453:2;-1:-1:-1;8599:9:1;;8443:171::o;8619:168::-;8659:7;8725:1;8721;8717:6;8713:14;8710:1;8707:21;8702:1;8695:9;8688:17;8684:45;8681:2;;;8732:18;;:::i;:::-;-1:-1:-1;8772:9:1;;8671:116::o;8792:125::-;8832:4;8860:1;8857;8854:8;8851:2;;;8865:18;;:::i;:::-;-1:-1:-1;8902:9:1;;8841:76::o;8922:258::-;8994:1;9004:113;9018:6;9015:1;9012:13;9004:113;;;9094:11;;;9088:18;9075:11;;;9068:39;9040:2;9033:10;9004:113;;;9135:6;9132:1;9129:13;9126:2;;;-1:-1:-1;;9170:1:1;9152:16;;9145:27;8975:205::o;9185:380::-;9264:1;9260:12;;;;9307;;;9328:2;;9382:4;9374:6;9370:17;9360:27;;9328:2;9435;9427:6;9424:14;9404:18;9401:38;9398:2;;;9481:10;9476:3;9472:20;9469:1;9462:31;9516:4;9513:1;9506:15;9544:4;9541:1;9534:15;9398:2;;9240:325;;;:::o;9570:135::-;9609:3;-1:-1:-1;;9630:17:1;;9627:2;;;9650:18;;:::i;:::-;-1:-1:-1;9697:1:1;9686:13;;9617:88::o;9710:127::-;9771:10;9766:3;9762:20;9759:1;9752:31;9802:4;9799:1;9792:15;9826:4;9823:1;9816:15;9842:127;9903:10;9898:3;9894:20;9891:1;9884:31;9934:4;9931:1;9924:15;9958:4;9955:1;9948:15;9974:118;10060:5;10053:13;10046:21;10039:5;10036:32;10026:2;;10082:1;10079;10072:12

Swarm Source

ipfs://35ffa30f59f21f527664bc914f0bfce447d511af28bb1b0de4c09eaa6866ce00
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.