ETH Price: $3,226.54 (+4.52%)
Gas: 45 Gwei

Token

Harambe AI Token (HARAMBEAI)
 

Overview

Max Total Supply

690,000,000 HARAMBEAI

Holders

1

Total Transfers

-

Market

Fully Diluted Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
HARAMBEToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

pragma solidity ^0.8.10;

contract SafeMath {

    function safeAdd(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function safeSub(uint a, uint b) internal pure returns (uint) {
        require(b <= a, "Subtraction underflow");
        uint c = a - b;
        return c;
    }

    function safeMul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) return 0;
        uint c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function safeDiv(uint a, uint b) internal pure returns (uint) {
        require(b > 0, "Division by zero");
        uint c = a / b;
        return c;
    }
}


//ERC Token Standard #20 Interface

interface ERC20Interface {
    function totalSupply() external view returns (uint);
    function balanceOf(address tokenOwner) external view returns (uint balance);
    function allowance(address tokenOwner, address spender) external view  returns (uint remaining);
    function transfer(address to, uint tokens) external returns (bool success);
    function approve(address spender, uint tokens) external returns (bool success);
    function transferFrom(address from, address to, uint tokens) external returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


//Contract function to receive approval and execute function in one call

interface ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes calldata data) external;
}

//Actual token contract

contract HARAMBEToken is ERC20Interface, SafeMath {
    string public symbol;
    string public  name;
    uint8 public decimals;
    uint public _totalSupply;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;

    constructor() public {
        symbol = "HARAMBEAI";
        name = "Harambe AI Token";
        decimals = 18;
        _totalSupply = 690000000000000000000000000;
        balances[0x06D344b9ada316c83C30110Ca6029d49961eC907] = _totalSupply;
        emit Transfer(address(0), 0x06D344b9ada316c83C30110Ca6029d49961eC907, _totalSupply);
    }

    function totalSupply() public view returns (uint) {
        return _totalSupply  - balances[address(0)];
    }

    function balanceOf(address tokenOwner) public view returns (uint balance) {
        return balances[tokenOwner];
    }

    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = safeSub(balances[msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }

    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = safeSub(balances[from], tokens);
        allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }

    function approveAndCall(address spender, uint tokens, bytes calldata data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }

    fallback () external {
        revert();
    }
    receive() external payable {
        // React to receiving ether; currently, your fallback just reverts, so:
        revert("ETH not accepted");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"tokens","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":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f484152414d424541490000000000000000000000000000000000000000000000815250600090805190602001906200005f929190620001bb565b506040518060400160405280601081526020017f486172616d626520414920546f6b656e0000000000000000000000000000000081525060019080519060200190620000ad929190620001bb565b506012600260006101000a81548160ff021916908360ff1602179055506b023ac12ef364587bf2000000600381905550600354600460007306d344b9ada316c83c30110ca6029d49961ec90773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507306d344b9ada316c83c30110ca6029d49961ec90773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620001ad919062000286565b60405180910390a362000308565b828054620001c990620002d2565b90600052602060002090601f016020900481019282620001ed576000855562000239565b82601f106200020857805160ff191683800117855562000239565b8280016001018555821562000239579182015b82811115620002385782518255916020019190600101906200021b565b5b5090506200024891906200024c565b5090565b5b80821115620002675760008160009055506001016200024d565b5090565b6000819050919050565b62000280816200026b565b82525050565b60006020820190506200029d600083018462000275565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002eb57607f821691505b60208210811415620003025762000301620002a3565b5b50919050565b6113c680620003186000396000f3fe6080604052600436106100a05760003560e01c80633eaaf86b116100645780633eaaf86b146101ed57806370a082311461021857806395d89b4114610255578063a9059cbb14610280578063cae9ca51146102bd578063dd62ed3e146102fa576100e0565b806306fdde03146100f2578063095ea7b31461011d57806318160ddd1461015a57806323b872dd14610185578063313ce567146101c2576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d790610d1c565b60405180910390fd5b3480156100ec57600080fd5b50600080fd5b3480156100fe57600080fd5b50610107610337565b6040516101149190610dc4565b60405180910390f35b34801561012957600080fd5b50610144600480360381019061013f9190610e84565b6103c5565b6040516101519190610edf565b60405180910390f35b34801561016657600080fd5b5061016f6104b7565b60405161017c9190610f09565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190610f24565b61050b565b6040516101b99190610edf565b60405180910390f35b3480156101ce57600080fd5b506101d761079b565b6040516101e49190610f93565b60405180910390f35b3480156101f957600080fd5b506102026107ae565b60405161020f9190610f09565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a9190610fae565b6107b4565b60405161024c9190610f09565b60405180910390f35b34801561026157600080fd5b5061026a6107fd565b6040516102779190610dc4565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190610e84565b61088b565b6040516102b49190610edf565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190611040565b610a14565b6040516102f19190610edf565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c91906110b4565b610b7b565b60405161032e9190610f09565b60405180910390f35b6001805461034490611123565b80601f016020809104026020016040519081016040528092919081815260200182805461037090611123565b80156103bd5780601f10610392576101008083540402835291602001916103bd565b820191906000526020600020905b8154815290600101906020018083116103a057829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104a59190610f09565b60405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003546105069190611184565b905090565b6000610556600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061061f600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106e8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c61565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107889190610f09565b60405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000805461080a90611123565b80601f016020809104026020016040519081016040528092919081815260200182805461083690611123565b80156108835780601f1061085857610100808354040283529160200191610883565b820191906000526020600020905b81548152906001019060200180831161086657829003601f168201915b505050505081565b60006108d6600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610962600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c61565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a029190610f09565b60405180910390a36001905092915050565b600083600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92586604051610af49190610f09565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401610b3d959493929190611214565b600060405180830381600087803b158015610b5757600080fd5b505af1158015610b6b573d6000803e3d6000fd5b5050505060019050949350505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e906112ae565b60405180910390fd5b60008284610c559190611184565b90508091505092915050565b6000808284610c7091906112ce565b905083811015610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac90611370565b60405180910390fd5b8091505092915050565b600082825260208201905092915050565b7f455448206e6f7420616363657074656400000000000000000000000000000000600082015250565b6000610d06601083610cbf565b9150610d1182610cd0565b602082019050919050565b60006020820190508181036000830152610d3581610cf9565b9050919050565b600081519050919050565b60005b83811015610d65578082015181840152602081019050610d4a565b83811115610d74576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9682610d3c565b610da08185610cbf565b9350610db0818560208601610d47565b610db981610d7a565b840191505092915050565b60006020820190508181036000830152610dde8184610d8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e1b82610df0565b9050919050565b610e2b81610e10565b8114610e3657600080fd5b50565b600081359050610e4881610e22565b92915050565b6000819050919050565b610e6181610e4e565b8114610e6c57600080fd5b50565b600081359050610e7e81610e58565b92915050565b60008060408385031215610e9b57610e9a610de6565b5b6000610ea985828601610e39565b9250506020610eba85828601610e6f565b9150509250929050565b60008115159050919050565b610ed981610ec4565b82525050565b6000602082019050610ef46000830184610ed0565b92915050565b610f0381610e4e565b82525050565b6000602082019050610f1e6000830184610efa565b92915050565b600080600060608486031215610f3d57610f3c610de6565b5b6000610f4b86828701610e39565b9350506020610f5c86828701610e39565b9250506040610f6d86828701610e6f565b9150509250925092565b600060ff82169050919050565b610f8d81610f77565b82525050565b6000602082019050610fa86000830184610f84565b92915050565b600060208284031215610fc457610fc3610de6565b5b6000610fd284828501610e39565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261100057610fff610fdb565b5b8235905067ffffffffffffffff81111561101d5761101c610fe0565b5b60208301915083600182028301111561103957611038610fe5565b5b9250929050565b6000806000806060858703121561105a57611059610de6565b5b600061106887828801610e39565b945050602061107987828801610e6f565b935050604085013567ffffffffffffffff81111561109a57611099610deb565b5b6110a687828801610fea565b925092505092959194509250565b600080604083850312156110cb576110ca610de6565b5b60006110d985828601610e39565b92505060206110ea85828601610e39565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061113b57607f821691505b6020821081141561114f5761114e6110f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061118f82610e4e565b915061119a83610e4e565b9250828210156111ad576111ac611155565b5b828203905092915050565b6111c181610e10565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b60006111f383856111c7565b93506112008385846111d8565b61120983610d7a565b840190509392505050565b600060808201905061122960008301886111b8565b6112366020830187610efa565b61124360408301866111b8565b81810360608301526112568184866111e7565b90509695505050505050565b7f5375627472616374696f6e20756e646572666c6f770000000000000000000000600082015250565b6000611298601583610cbf565b91506112a382611262565b602082019050919050565b600060208201905081810360008301526112c78161128b565b9050919050565b60006112d982610e4e565b91506112e483610e4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561131957611318611155565b5b828201905092915050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b600061135a601183610cbf565b915061136582611324565b602082019050919050565b600060208201905081810360008301526113898161134d565b905091905056fea264697066735822122005f2bda20618ddd663d9ae092da629d0132ccae34350de50a619caffabb1ef8064736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106100a05760003560e01c80633eaaf86b116100645780633eaaf86b146101ed57806370a082311461021857806395d89b4114610255578063a9059cbb14610280578063cae9ca51146102bd578063dd62ed3e146102fa576100e0565b806306fdde03146100f2578063095ea7b31461011d57806318160ddd1461015a57806323b872dd14610185578063313ce567146101c2576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d790610d1c565b60405180910390fd5b3480156100ec57600080fd5b50600080fd5b3480156100fe57600080fd5b50610107610337565b6040516101149190610dc4565b60405180910390f35b34801561012957600080fd5b50610144600480360381019061013f9190610e84565b6103c5565b6040516101519190610edf565b60405180910390f35b34801561016657600080fd5b5061016f6104b7565b60405161017c9190610f09565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190610f24565b61050b565b6040516101b99190610edf565b60405180910390f35b3480156101ce57600080fd5b506101d761079b565b6040516101e49190610f93565b60405180910390f35b3480156101f957600080fd5b506102026107ae565b60405161020f9190610f09565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a9190610fae565b6107b4565b60405161024c9190610f09565b60405180910390f35b34801561026157600080fd5b5061026a6107fd565b6040516102779190610dc4565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190610e84565b61088b565b6040516102b49190610edf565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190611040565b610a14565b6040516102f19190610edf565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c91906110b4565b610b7b565b60405161032e9190610f09565b60405180910390f35b6001805461034490611123565b80601f016020809104026020016040519081016040528092919081815260200182805461037090611123565b80156103bd5780601f10610392576101008083540402835291602001916103bd565b820191906000526020600020905b8154815290600101906020018083116103a057829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104a59190610f09565b60405180910390a36001905092915050565b6000600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003546105069190611184565b905090565b6000610556600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061061f600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106e8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c61565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107889190610f09565b60405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000805461080a90611123565b80601f016020809104026020016040519081016040528092919081815260200182805461083690611123565b80156108835780601f1061085857610100808354040283529160200191610883565b820191906000526020600020905b81548152906001019060200180831161086657829003601f168201915b505050505081565b60006108d6600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c02565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610962600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610c61565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a029190610f09565b60405180910390a36001905092915050565b600083600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92586604051610af49190610f09565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401610b3d959493929190611214565b600060405180830381600087803b158015610b5757600080fd5b505af1158015610b6b573d6000803e3d6000fd5b5050505060019050949350505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e906112ae565b60405180910390fd5b60008284610c559190611184565b90508091505092915050565b6000808284610c7091906112ce565b905083811015610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac90611370565b60405180910390fd5b8091505092915050565b600082825260208201905092915050565b7f455448206e6f7420616363657074656400000000000000000000000000000000600082015250565b6000610d06601083610cbf565b9150610d1182610cd0565b602082019050919050565b60006020820190508181036000830152610d3581610cf9565b9050919050565b600081519050919050565b60005b83811015610d65578082015181840152602081019050610d4a565b83811115610d74576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9682610d3c565b610da08185610cbf565b9350610db0818560208601610d47565b610db981610d7a565b840191505092915050565b60006020820190508181036000830152610dde8184610d8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e1b82610df0565b9050919050565b610e2b81610e10565b8114610e3657600080fd5b50565b600081359050610e4881610e22565b92915050565b6000819050919050565b610e6181610e4e565b8114610e6c57600080fd5b50565b600081359050610e7e81610e58565b92915050565b60008060408385031215610e9b57610e9a610de6565b5b6000610ea985828601610e39565b9250506020610eba85828601610e6f565b9150509250929050565b60008115159050919050565b610ed981610ec4565b82525050565b6000602082019050610ef46000830184610ed0565b92915050565b610f0381610e4e565b82525050565b6000602082019050610f1e6000830184610efa565b92915050565b600080600060608486031215610f3d57610f3c610de6565b5b6000610f4b86828701610e39565b9350506020610f5c86828701610e39565b9250506040610f6d86828701610e6f565b9150509250925092565b600060ff82169050919050565b610f8d81610f77565b82525050565b6000602082019050610fa86000830184610f84565b92915050565b600060208284031215610fc457610fc3610de6565b5b6000610fd284828501610e39565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261100057610fff610fdb565b5b8235905067ffffffffffffffff81111561101d5761101c610fe0565b5b60208301915083600182028301111561103957611038610fe5565b5b9250929050565b6000806000806060858703121561105a57611059610de6565b5b600061106887828801610e39565b945050602061107987828801610e6f565b935050604085013567ffffffffffffffff81111561109a57611099610deb565b5b6110a687828801610fea565b925092505092959194509250565b600080604083850312156110cb576110ca610de6565b5b60006110d985828601610e39565b92505060206110ea85828601610e39565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061113b57607f821691505b6020821081141561114f5761114e6110f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061118f82610e4e565b915061119a83610e4e565b9250828210156111ad576111ac611155565b5b828203905092915050565b6111c181610e10565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b60006111f383856111c7565b93506112008385846111d8565b61120983610d7a565b840190509392505050565b600060808201905061122960008301886111b8565b6112366020830187610efa565b61124360408301866111b8565b81810360608301526112568184866111e7565b90509695505050505050565b7f5375627472616374696f6e20756e646572666c6f770000000000000000000000600082015250565b6000611298601583610cbf565b91506112a382611262565b602082019050919050565b600060208201905081810360008301526112c78161128b565b9050919050565b60006112d982610e4e565b91506112e483610e4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561131957611318611155565b5b828201905092915050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b600061135a601183610cbf565b915061136582611324565b602082019050919050565b600060208201905081810360008301526113898161134d565b905091905056fea264697066735822122005f2bda20618ddd663d9ae092da629d0132ccae34350de50a619caffabb1ef8064736f6c634300080a0033

Deployed Bytecode Sourcemap

1770:2448:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4181:26;;;;;;;;;;:::i;:::-;;;;;;;;1770:2448;;;;;;;;;;;4040:8;;;1854:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2928:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2395:112;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1880:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1908:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2515:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1827:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2643:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1854:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2928:208::-;2991:12;3047:6;3016:7;:19;3024:10;3016:19;;;;;;;;;;;;;;;:28;3036:7;3016:28;;;;;;;;;;;;;;;:37;;;;3090:7;3069:37;;3078:10;3069:37;;;3099:6;3069:37;;;;;;:::i;:::-;;;;;;;;3124:4;3117:11;;2928:208;;;;:::o;2395:112::-;2439:4;2479:8;:20;2496:1;2479:20;;;;;;;;;;;;;;;;2463:12;;:36;;;;:::i;:::-;2456:43;;2395:112;:::o;3144:358::-;3221:12;3263:31;3271:8;:14;3280:4;3271:14;;;;;;;;;;;;;;;;3287:6;3263:7;:31::i;:::-;3246:8;:14;3255:4;3246:14;;;;;;;;;;;;;;;:48;;;;3333:42;3341:7;:13;3349:4;3341:13;;;;;;;;;;;;;;;:25;3355:10;3341:25;;;;;;;;;;;;;;;;3368:6;3333:7;:42::i;:::-;3305:7;:13;3313:4;3305:13;;;;;;;;;;;;;;;:25;3319:10;3305:25;;;;;;;;;;;;;;;:70;;;;3401:29;3409:8;:12;3418:2;3409:12;;;;;;;;;;;;;;;;3423:6;3401:7;:29::i;:::-;3386:8;:12;3395:2;3386:12;;;;;;;;;;;;;;;:44;;;;3461:2;3446:26;;3455:4;3446:26;;;3465:6;3446:26;;;;;;:::i;:::-;;;;;;;;3490:4;3483:11;;3144:358;;;;;:::o;1880:21::-;;;;;;;;;;;;;:::o;1908:24::-;;;;:::o;2515:120::-;2575:12;2607:8;:20;2616:10;2607:20;;;;;;;;;;;;;;;;2600:27;;2515:120;;;:::o;1827:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2643:277::-;2702:12;2750:37;2758:8;:20;2767:10;2758:20;;;;;;;;;;;;;;;;2780:6;2750:7;:37::i;:::-;2727:8;:20;2736:10;2727:20;;;;;;;;;;;;;;;:60;;;;2813:29;2821:8;:12;2830:2;2821:12;;;;;;;;;;;;;;;;2835:6;2813:7;:29::i;:::-;2798:8;:12;2807:2;2798:12;;;;;;;;;;;;;;;:44;;;;2879:2;2858:32;;2867:10;2858:32;;;2883:6;2858:32;;;;;;:::i;:::-;;;;;;;;2908:4;2901:11;;2643:277;;;;:::o;3665:335::-;3756:12;3812:6;3781:7;:19;3789:10;3781:19;;;;;;;;;;;;;;;:28;3801:7;3781:28;;;;;;;;;;;;;;;:37;;;;3855:7;3834:37;;3843:10;3834:37;;;3864:6;3834:37;;;;;;:::i;:::-;;;;;;;;3905:7;3882:47;;;3930:10;3942:6;3958:4;3965;;3882:88;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:4;3981:11;;3665:335;;;;;;:::o;3510:147::-;3587:14;3621:7;:19;3629:10;3621:19;;;;;;;;;;;;;;;:28;3641:7;3621:28;;;;;;;;;;;;;;;;3614:35;;3510:147;;;;:::o;224:165::-;280:4;310:1;305;:6;;297:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;348:6;361:1;357;:5;;;;:::i;:::-;348:14;;380:1;373:8;;;224:165;;;;:::o;55:161::-;111:4;128:6;141:1;137;:5;;;;:::i;:::-;128:14;;166:1;161;:6;;153:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;207:1;200:8;;;55:161;;;;:::o;7:169:1:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:166::-;322:18;318:1;310:6;306:14;299:42;182:166;:::o;354:366::-;496:3;517:67;581:2;576:3;517:67;:::i;:::-;510:74;;593:93;682:3;593:93;:::i;:::-;711:2;706:3;702:12;695:19;;354:366;;;:::o;726:419::-;892:4;930:2;919:9;915:18;907:26;;979:9;973:4;969:20;965:1;954:9;950:17;943:47;1007:131;1133:4;1007:131;:::i;:::-;999:139;;726:419;;;:::o;1151:99::-;1203:6;1237:5;1231:12;1221:22;;1151:99;;;:::o;1256:307::-;1324:1;1334:113;1348:6;1345:1;1342:13;1334:113;;;1433:1;1428:3;1424:11;1418:18;1414:1;1409:3;1405:11;1398:39;1370:2;1367:1;1363:10;1358:15;;1334:113;;;1465:6;1462:1;1459:13;1456:101;;;1545:1;1536:6;1531:3;1527:16;1520:27;1456:101;1305:258;1256:307;;;:::o;1569:102::-;1610:6;1661:2;1657:7;1652:2;1645:5;1641:14;1637:28;1627:38;;1569:102;;;:::o;1677:364::-;1765:3;1793:39;1826:5;1793:39;:::i;:::-;1848:71;1912:6;1907:3;1848:71;:::i;:::-;1841:78;;1928:52;1973:6;1968:3;1961:4;1954:5;1950:16;1928:52;:::i;:::-;2005:29;2027:6;2005:29;:::i;:::-;2000:3;1996:39;1989:46;;1769:272;1677:364;;;;:::o;2047:313::-;2160:4;2198:2;2187:9;2183:18;2175:26;;2247:9;2241:4;2237:20;2233:1;2222:9;2218:17;2211:47;2275:78;2348:4;2339:6;2275:78;:::i;:::-;2267:86;;2047:313;;;;:::o;2447:117::-;2556:1;2553;2546:12;2570:117;2679:1;2676;2669:12;2693:126;2730:7;2770:42;2763:5;2759:54;2748:65;;2693:126;;;:::o;2825:96::-;2862:7;2891:24;2909:5;2891:24;:::i;:::-;2880:35;;2825:96;;;:::o;2927:122::-;3000:24;3018:5;3000:24;:::i;:::-;2993:5;2990:35;2980:63;;3039:1;3036;3029:12;2980:63;2927:122;:::o;3055:139::-;3101:5;3139:6;3126:20;3117:29;;3155:33;3182:5;3155:33;:::i;:::-;3055:139;;;;:::o;3200:77::-;3237:7;3266:5;3255:16;;3200:77;;;:::o;3283:122::-;3356:24;3374:5;3356:24;:::i;:::-;3349:5;3346:35;3336:63;;3395:1;3392;3385:12;3336:63;3283:122;:::o;3411:139::-;3457:5;3495:6;3482:20;3473:29;;3511:33;3538:5;3511:33;:::i;:::-;3411:139;;;;:::o;3556:474::-;3624:6;3632;3681:2;3669:9;3660:7;3656:23;3652:32;3649:119;;;3687:79;;:::i;:::-;3649:119;3807:1;3832:53;3877:7;3868:6;3857:9;3853:22;3832:53;:::i;:::-;3822:63;;3778:117;3934:2;3960:53;4005:7;3996:6;3985:9;3981:22;3960:53;:::i;:::-;3950:63;;3905:118;3556:474;;;;;:::o;4036:90::-;4070:7;4113:5;4106:13;4099:21;4088:32;;4036:90;;;:::o;4132:109::-;4213:21;4228:5;4213:21;:::i;:::-;4208:3;4201:34;4132:109;;:::o;4247:210::-;4334:4;4372:2;4361:9;4357:18;4349:26;;4385:65;4447:1;4436:9;4432:17;4423:6;4385:65;:::i;:::-;4247:210;;;;:::o;4463:118::-;4550:24;4568:5;4550:24;:::i;:::-;4545:3;4538:37;4463:118;;:::o;4587:222::-;4680:4;4718:2;4707:9;4703:18;4695:26;;4731:71;4799:1;4788:9;4784:17;4775:6;4731:71;:::i;:::-;4587:222;;;;:::o;4815:619::-;4892:6;4900;4908;4957:2;4945:9;4936:7;4932:23;4928:32;4925:119;;;4963:79;;:::i;:::-;4925:119;5083:1;5108:53;5153:7;5144:6;5133:9;5129:22;5108:53;:::i;:::-;5098:63;;5054:117;5210:2;5236:53;5281:7;5272:6;5261:9;5257:22;5236:53;:::i;:::-;5226:63;;5181:118;5338:2;5364:53;5409:7;5400:6;5389:9;5385:22;5364:53;:::i;:::-;5354:63;;5309:118;4815:619;;;;;:::o;5440:86::-;5475:7;5515:4;5508:5;5504:16;5493:27;;5440:86;;;:::o;5532:112::-;5615:22;5631:5;5615:22;:::i;:::-;5610:3;5603:35;5532:112;;:::o;5650:214::-;5739:4;5777:2;5766:9;5762:18;5754:26;;5790:67;5854:1;5843:9;5839:17;5830:6;5790:67;:::i;:::-;5650:214;;;;:::o;5870:329::-;5929:6;5978:2;5966:9;5957:7;5953:23;5949:32;5946:119;;;5984:79;;:::i;:::-;5946:119;6104:1;6129:53;6174:7;6165:6;6154:9;6150:22;6129:53;:::i;:::-;6119:63;;6075:117;5870:329;;;;:::o;6205:117::-;6314:1;6311;6304:12;6328:117;6437:1;6434;6427:12;6451:117;6560:1;6557;6550:12;6587:552;6644:8;6654:6;6704:3;6697:4;6689:6;6685:17;6681:27;6671:122;;6712:79;;:::i;:::-;6671:122;6825:6;6812:20;6802:30;;6855:18;6847:6;6844:30;6841:117;;;6877:79;;:::i;:::-;6841:117;6991:4;6983:6;6979:17;6967:29;;7045:3;7037:4;7029:6;7025:17;7015:8;7011:32;7008:41;7005:128;;;7052:79;;:::i;:::-;7005:128;6587:552;;;;;:::o;7145:817::-;7233:6;7241;7249;7257;7306:2;7294:9;7285:7;7281:23;7277:32;7274:119;;;7312:79;;:::i;:::-;7274:119;7432:1;7457:53;7502:7;7493:6;7482:9;7478:22;7457:53;:::i;:::-;7447:63;;7403:117;7559:2;7585:53;7630:7;7621:6;7610:9;7606:22;7585:53;:::i;:::-;7575:63;;7530:118;7715:2;7704:9;7700:18;7687:32;7746:18;7738:6;7735:30;7732:117;;;7768:79;;:::i;:::-;7732:117;7881:64;7937:7;7928:6;7917:9;7913:22;7881:64;:::i;:::-;7863:82;;;;7658:297;7145:817;;;;;;;:::o;7968:474::-;8036:6;8044;8093:2;8081:9;8072:7;8068:23;8064:32;8061:119;;;8099:79;;:::i;:::-;8061:119;8219:1;8244:53;8289:7;8280:6;8269:9;8265:22;8244:53;:::i;:::-;8234:63;;8190:117;8346:2;8372:53;8417:7;8408:6;8397:9;8393:22;8372:53;:::i;:::-;8362:63;;8317:118;7968:474;;;;;:::o;8448:180::-;8496:77;8493:1;8486:88;8593:4;8590:1;8583:15;8617:4;8614:1;8607:15;8634:320;8678:6;8715:1;8709:4;8705:12;8695:22;;8762:1;8756:4;8752:12;8783:18;8773:81;;8839:4;8831:6;8827:17;8817:27;;8773:81;8901:2;8893:6;8890:14;8870:18;8867:38;8864:84;;;8920:18;;:::i;:::-;8864:84;8685:269;8634:320;;;:::o;8960:180::-;9008:77;9005:1;8998:88;9105:4;9102:1;9095:15;9129:4;9126:1;9119:15;9146:191;9186:4;9206:20;9224:1;9206:20;:::i;:::-;9201:25;;9240:20;9258:1;9240:20;:::i;:::-;9235:25;;9279:1;9276;9273:8;9270:34;;;9284:18;;:::i;:::-;9270:34;9329:1;9326;9322:9;9314:17;;9146:191;;;;:::o;9343:118::-;9430:24;9448:5;9430:24;:::i;:::-;9425:3;9418:37;9343:118;;:::o;9467:168::-;9550:11;9584:6;9579:3;9572:19;9624:4;9619:3;9615:14;9600:29;;9467:168;;;;:::o;9641:154::-;9725:6;9720:3;9715;9702:30;9787:1;9778:6;9773:3;9769:16;9762:27;9641:154;;;:::o;9823:301::-;9919:3;9940:70;10003:6;9998:3;9940:70;:::i;:::-;9933:77;;10020:43;10056:6;10051:3;10044:5;10020:43;:::i;:::-;10088:29;10110:6;10088:29;:::i;:::-;10083:3;10079:39;10072:46;;9823:301;;;;;:::o;10130:660::-;10335:4;10373:3;10362:9;10358:19;10350:27;;10387:71;10455:1;10444:9;10440:17;10431:6;10387:71;:::i;:::-;10468:72;10536:2;10525:9;10521:18;10512:6;10468:72;:::i;:::-;10550;10618:2;10607:9;10603:18;10594:6;10550:72;:::i;:::-;10669:9;10663:4;10659:20;10654:2;10643:9;10639:18;10632:48;10697:86;10778:4;10769:6;10761;10697:86;:::i;:::-;10689:94;;10130:660;;;;;;;;:::o;10796:171::-;10936:23;10932:1;10924:6;10920:14;10913:47;10796:171;:::o;10973:366::-;11115:3;11136:67;11200:2;11195:3;11136:67;:::i;:::-;11129:74;;11212:93;11301:3;11212:93;:::i;:::-;11330:2;11325:3;11321:12;11314:19;;10973:366;;;:::o;11345:419::-;11511:4;11549:2;11538:9;11534:18;11526:26;;11598:9;11592:4;11588:20;11584:1;11573:9;11569:17;11562:47;11626:131;11752:4;11626:131;:::i;:::-;11618:139;;11345:419;;;:::o;11770:305::-;11810:3;11829:20;11847:1;11829:20;:::i;:::-;11824:25;;11863:20;11881:1;11863:20;:::i;:::-;11858:25;;12017:1;11949:66;11945:74;11942:1;11939:81;11936:107;;;12023:18;;:::i;:::-;11936:107;12067:1;12064;12060:9;12053:16;;11770:305;;;;:::o;12081:167::-;12221:19;12217:1;12209:6;12205:14;12198:43;12081:167;:::o;12254:366::-;12396:3;12417:67;12481:2;12476:3;12417:67;:::i;:::-;12410:74;;12493:93;12582:3;12493:93;:::i;:::-;12611:2;12606:3;12602:12;12595:19;;12254:366;;;:::o;12626:419::-;12792:4;12830:2;12819:9;12815:18;12807:26;;12879:9;12873:4;12869:20;12865:1;12854:9;12850:17;12843:47;12907:131;13033:4;12907:131;:::i;:::-;12899:139;;12626:419;;;:::o

Swarm Source

ipfs://05f2bda20618ddd663d9ae092da629d0132ccae34350de50a619caffabb1ef80
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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