{
  "contractName": "NoSettlementToken",
  "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"
    },
    {
      "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": [
        {
          "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"
    },
    {
      "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": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/NoSettlementToken.sol\":\"NoSettlementToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/NoSettlementToken.sol\":{\"keccak256\":\"0xfe415aa6f64f36c665ede4a796f792a779e9e987982ff273e400f32db52f6d75\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://16d408b25489e6ebca98305bf550b02eabe2a2f28bb99ee616d2ea127b1a5fef\",\"dweb:/ipfs/Qmf2dn6QLUu3sfgLJwnKdAxoWDCZwnA5Xc3h6jnp3ud1rC\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0xc6fb4c940628ca2cde81ed6d20fc9ff456b60f55aafef555f43a86a2dda7ad9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f17dda58954a84ffca3d53c0b6435bad7f5c42ab3a9c4603db2f1aef00edae4e\",\"dweb:/ipfs/QmehW99QmmzKvnqTsprsApDF7mK2JVo6nnrZ47znhLTFjh\"]},\"openzeppelin-solidity/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xaa0e11a791bc975d581a4f5b7a8d9c16a880a354c89312318ae072ae3e740409\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://982d8b344f76193834260436d74c81e5a8f9e89106bb4cd72bbaabda4f3f59c2\",\"dweb:/ipfs/QmSrvP5TkQRhKDVCTpsV3uaKLBhkt7PjUY89vdtM9o5ybK\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4daf1e5f59e8ca32aca35cffc32dede6515b06d0d7e5013cd78bb24094fad719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93703bec9d9f5e4aa3f027d5db956ce94716f58182fc53ebf90bed7968bca51\",\"dweb:/ipfs/QmPdV3o4ADR9ABUNKwabR3GxaeGQX7xMdQur2aqEi5KnT9\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x934dbc549a8df514456047ad1c6ab257127a03f4109272834c30e596bbe10d1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33cf247ade00a28c632dfe2c2521e1952f467c6081b89375c34b1eb297441d9b\",\"dweb:/ipfs/QmYGNAHCtN1m3QDynteTeVCfwFZBZRpGJNMjxwVBUifnfB\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50604080518082019091526008808252671393d7d4d513135560c21b602090920191825261004091600191610098565b506040805180820190915260138082527f4e6f20536574746c656d656e7420546f6b656e00000000000000000000000000602090920191825261008591600091610098565b506002805460ff19166012179055610133565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d957805160ff1916838001178555610106565b82800160010185558215610106579182015b828111156101065782518255916020019190600101906100eb565b50610112929150610116565b5090565b61013091905b80821115610112576000815560010161011c565b90565b610479806101426000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146101a557806370a08231146101c357806395d89b41146101e9578063a9059cbb146101f1578063dd62ed3e1461021d57610093565b806306fdde0314610098578063095ea7b31461011557806318160ddd1461015557806323b872dd1461016f575b600080fd5b6100a061024b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100da5781810151838201526020016100c2565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101416004803603604081101561012b57600080fd5b506001600160a01b0381351690602001356102d9565b604080519115158252519081900360200190f35b61015d610326565b60408051918252519081900360200190f35b6101416004803603606081101561018557600080fd5b506001600160a01b0381358116916020810135909116906040013561032c565b6101ad610383565b6040805160ff9092168252519081900360200190f35b61015d600480360360208110156101d957600080fd5b50356001600160a01b031661038c565b6100a0610393565b6101416004803603604081101561020757600080fd5b506001600160a01b0381351690602001356103ed565b61015d6004803603604081101561023357600080fd5b506001600160a01b038135811691602001351661043a565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102d15780601f106102a6576101008083540402835291602001916102d1565b820191906000526020600020905b8154815290600101906020018083116102b457829003601f168201915b505050505081565b6040805182815290516000916001600160a01b0385169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360200190a350600192915050565b60001990565b6000826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b60025460ff1681565b5060001990565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102d15780601f106102a6576101008083540402835291602001916102d1565b6040805182815290516000916001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a350600192915050565b6000199291505056fea26469706673582212206e4ff5235d8f5147137720abff3ac41f6aafdf608e6f1b04dd3b2a11c6f6714a64736f6c634300060b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146101a557806370a08231146101c357806395d89b41146101e9578063a9059cbb146101f1578063dd62ed3e1461021d57610093565b806306fdde0314610098578063095ea7b31461011557806318160ddd1461015557806323b872dd1461016f575b600080fd5b6100a061024b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100da5781810151838201526020016100c2565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101416004803603604081101561012b57600080fd5b506001600160a01b0381351690602001356102d9565b604080519115158252519081900360200190f35b61015d610326565b60408051918252519081900360200190f35b6101416004803603606081101561018557600080fd5b506001600160a01b0381358116916020810135909116906040013561032c565b6101ad610383565b6040805160ff9092168252519081900360200190f35b61015d600480360360208110156101d957600080fd5b50356001600160a01b031661038c565b6100a0610393565b6101416004803603604081101561020757600080fd5b506001600160a01b0381351690602001356103ed565b61015d6004803603604081101561023357600080fd5b506001600160a01b038135811691602001351661043a565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102d15780601f106102a6576101008083540402835291602001916102d1565b820191906000526020600020905b8154815290600101906020018083116102b457829003601f168201915b505050505081565b6040805182815290516000916001600160a01b0385169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360200190a350600192915050565b60001990565b6000826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b60025460ff1681565b5060001990565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102d15780601f106102a6576101008083540402835291602001916102d1565b6040805182815290516000916001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a350600192915050565b6000199291505056fea26469706673582212206e4ff5235d8f5147137720abff3ac41f6aafdf608e6f1b04dd3b2a11c6f6714a64736f6c634300060b0033",
  "immutableReferences": {},
  "sourceMap": "1015:1324:69:-:0;;;1308:118;;;;;;;;;-1:-1:-1;1339:19:69;;;;;;;;;;;;;-1:-1:-1;;;1339:19:69;;;;;;;;;:6;;:19;:::i;:::-;-1:-1:-1;1368:28:69;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1368:28:69;:::i;:::-;-1:-1:-1;1406:8:69;:13;;-1:-1:-1;;1406:13:69;1417:2;1406:13;;;1015:1324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:1324:69;;;-1:-1:-1;1015:1324:69;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "1015:1324:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1778:168;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1778:168:69;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1952:96;;;:::i;:::-;;;;;;;;;;;;;;;;1601:171;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1601:171:69;;;;;;;;;;;;;;;;;:::i;1279:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2054:126;;;;;;;;;;;;;;;;-1:-1:-1;2054:126:69;-1:-1:-1;;;;;2054:126:69;;:::i;1253:20::-;;;:::i;1436:159::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1436:159:69;;;;;;;;:::i;2186:151::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2186:151:69;;;;;;;;;;:::i;1229:18::-;;;;;;;;;;;;;;;-1:-1:-1;;1229:18:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1778:168::-;1881:37;;;;;;;;1852:12;;-1:-1:-1;;;;;1881:37:69;;;1890:10;;1881:37;;;;;;;;;;-1:-1:-1;1935:4:69;1778:168;;;;:::o;1952:96::-;-1:-1:-1;;1952:96:69;:::o;1601:171::-;1689:12;1733:2;-1:-1:-1;;;;;1718:26:69;1727:4;-1:-1:-1;;;;;1718:26:69;;1737:6;1718:26;;;;;;;;;;;;;;;;;;-1:-1:-1;1761:4:69;1601:171;;;;;:::o;1279:21::-;;;;;;:::o;2054:126::-;-1:-1:-1;;;2162:11:69;2054:126::o;1253:20::-;;;;;;;;;;;;;;;-1:-1:-1;;1253:20:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1436:159;1535:32;;;;;;;;1506:12;;-1:-1:-1;;;;;1535:32:69;;;1544:10;;1535:32;;;;;;;;;;-1:-1:-1;1584:4:69;1436:159;;;;:::o;2186:151::-;-1:-1:-1;;2186:151:69;;;;:::o",
  "source": "// \"SPDX-License-Identifier: Apache-2.0\"\npragma solidity ^0.6.11;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/access/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\n\n\ninterface ERC20Interface {\n    event Transfer(address indexed from, address indexed to, uint tokens);\n    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n    \n    function transfer(address to, uint tokens) external returns (bool success);\n    function transferFrom(address from, address to, uint tokens) external returns (bool success);\n    function approve(address spender, uint tokens) external returns (bool success);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address tokenOwner) external view returns (uint balance);\n    function allowance(address tokenOwner, address spender) external view returns (uint remaining);\n}\n\ncontract NoSettlementToken is ERC20Interface {\n\n    event Transfer(address indexed from, address indexed to, uint tokens);\n    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n\n    string public name;\n    string public symbol;\n    uint8 public decimals;\n\n\n    constructor() public {\n        symbol = \"NO_STLMT\";\n        name = \"No Settlement Token\";\n        decimals = 18;\n    }\n    \n    function transfer(address to, uint tokens) external override returns (bool success) {\n        emit Transfer(msg.sender, to, tokens);\n        return true;\n    }\n\n    function transferFrom(address from, address to, uint tokens) external override returns (bool success) {\n        emit Transfer(from, to, tokens);\n        return true;\n    }\n\n    function approve(address spender, uint tokens) external override returns (bool success) {\n        emit Approval(msg.sender, spender, tokens);\n        return true;\n    }\n\n    function totalSupply() external view override returns (uint) {\n        return ~uint256(0);\n    }\n\n    function balanceOf(address /* tokenOwner */) external view override returns (uint balance) {\n        return ~uint256(0);\n    }\n\n    function allowance(address /* tokenOwner */, address /* spender */) external view override returns (uint remaining) {\n        return ~uint256(0);\n    }\n}\n",
  "sourcePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/NoSettlementToken.sol",
  "ast": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/NoSettlementToken.sol",
    "exportedSymbols": {
      "ERC20Interface": [
        22015
      ],
      "NoSettlementToken": [
        22162
      ]
    },
    "id": 22163,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 21944,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:69"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 21945,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 38682,
        "src": "67:59:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
        "id": 21946,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 38486,
        "src": "127:60:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
        "id": 21947,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 39368,
        "src": "188:63:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
        "id": 21948,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 39446,
        "src": "252:64:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 22015,
        "linearizedBaseContracts": [
          22015
        ],
        "name": "ERC20Interface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 21956,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 21955,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21950,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "365:20:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21949,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "365:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21952,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "387:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21951,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "387:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21954,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "407:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21953,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "407:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "364:55:69"
            },
            "src": "350:70:69"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 21964,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 21963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21958,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "440:26:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21957,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "440:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21960,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "468:23:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21959,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21962,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "493:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21961,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "493:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "439:66:69"
            },
            "src": "425:81:69"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a9059cbb",
            "id": 21973,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21966,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "534:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21965,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "534:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21968,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "546:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21967,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "546:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "533:25:69"
            },
            "returnParameters": {
              "id": 21972,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21971,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "577:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21970,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "577:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "576:14:69"
            },
            "scope": 22015,
            "src": "516:75:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "23b872dd",
            "id": 21984,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21975,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "618:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21974,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "618:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21977,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "632:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21976,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "632:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21979,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "644:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21978,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "617:39:69"
            },
            "returnParameters": {
              "id": 21983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21982,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "675:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21981,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "675:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "674:14:69"
            },
            "scope": 22015,
            "src": "596:93:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "095ea7b3",
            "id": 21993,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21986,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "711:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21985,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21988,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "728:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21987,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "728:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "710:30:69"
            },
            "returnParameters": {
              "id": 21992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21991,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "759:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21990,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "759:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "758:14:69"
            },
            "scope": 22015,
            "src": "694:79:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 21998,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "798:2:69"
            },
            "returnParameters": {
              "id": 21997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21996,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21998,
                  "src": "824:4:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21995,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "823:6:69"
            },
            "scope": 22015,
            "src": "778:52:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 22005,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22001,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22000,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22005,
                  "src": "854:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21999,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "854:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "853:20:69"
            },
            "returnParameters": {
              "id": 22004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22003,
                  "mutability": "mutable",
                  "name": "balance",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22005,
                  "src": "897:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22002,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "897:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "896:14:69"
            },
            "scope": 22015,
            "src": "835:76:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "dd62ed3e",
            "id": 22014,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22010,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22007,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "935:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22009,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "955:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22008,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "955:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:37:69"
            },
            "returnParameters": {
              "id": 22013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22012,
                  "mutability": "mutable",
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "995:14:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "995:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "994:16:69"
            },
            "scope": 22015,
            "src": "916:95:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22163,
        "src": "319:694:69"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 22016,
              "name": "ERC20Interface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22015,
              "src": "1045:14:69",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20Interface_$22015",
                "typeString": "contract ERC20Interface"
              }
            },
            "id": 22017,
            "nodeType": "InheritanceSpecifier",
            "src": "1045:14:69"
          }
        ],
        "contractDependencies": [
          22015
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 22162,
        "linearizedBaseContracts": [
          22162,
          22015
        ],
        "name": "NoSettlementToken",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 22025,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 22024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22019,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1082:20:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22018,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1082:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22021,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1104:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22020,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22023,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1124:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22022,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1124:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1081:55:69"
            },
            "src": "1067:70:69"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 22033,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 22032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22027,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1157:26:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1157:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22029,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1185:23:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22028,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1185:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22031,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1210:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22030,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1210:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1156:66:69"
            },
            "src": "1142:81:69"
          },
          {
            "constant": false,
            "functionSelector": "06fdde03",
            "id": 22035,
            "mutability": "mutable",
            "name": "name",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1229:18:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22034,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1229:6:69",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "95d89b41",
            "id": 22037,
            "mutability": "mutable",
            "name": "symbol",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1253:20:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22036,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1253:6:69",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "313ce567",
            "id": 22039,
            "mutability": "mutable",
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1279:21:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 22038,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1279:5:69",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22054,
              "nodeType": "Block",
              "src": "1329:97:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22044,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22042,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22037,
                      "src": "1339:6:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "4e4f5f53544c4d54",
                      "id": 22043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1348:10:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_caaa60e6d6235e43647cd3083cf1eef2af1b1864dea2d6054357f26a48018c59",
                        "typeString": "literal_string \"NO_STLMT\""
                      },
                      "value": "NO_STLMT"
                    },
                    "src": "1339:19:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 22045,
                  "nodeType": "ExpressionStatement",
                  "src": "1339:19:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22046,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22035,
                      "src": "1368:4:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "4e6f20536574746c656d656e7420546f6b656e",
                      "id": 22047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1375:21:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_351f5c538b34b8b6a68efda1815ada21f9810e5e694c7a3468fc8d876b02785e",
                        "typeString": "literal_string \"No Settlement Token\""
                      },
                      "value": "No Settlement Token"
                    },
                    "src": "1368:28:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 22049,
                  "nodeType": "ExpressionStatement",
                  "src": "1368:28:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22050,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22039,
                      "src": "1406:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "3138",
                      "id": 22051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1417:2:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_18_by_1",
                        "typeString": "int_const 18"
                      },
                      "value": "18"
                    },
                    "src": "1406:13:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 22053,
                  "nodeType": "ExpressionStatement",
                  "src": "1406:13:69"
                }
              ]
            },
            "documentation": null,
            "id": 22055,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22040,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1319:2:69"
            },
            "returnParameters": {
              "id": 22041,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1329:0:69"
            },
            "scope": 22162,
            "src": "1308:118:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              21973
            ],
            "body": {
              "id": 22074,
              "nodeType": "Block",
              "src": "1520:75:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22066,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1544:3:69",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 22067,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1544:10:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22068,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22057,
                        "src": "1556:2:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22069,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22059,
                        "src": "1560:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22065,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22025
                      ],
                      "referencedDeclaration": 22025,
                      "src": "1535:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1535:32:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22071,
                  "nodeType": "EmitStatement",
                  "src": "1530:37:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1584:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22064,
                  "id": 22073,
                  "nodeType": "Return",
                  "src": "1577:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a9059cbb",
            "id": 22075,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22061,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1488:8:69"
            },
            "parameters": {
              "id": 22060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22057,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1454:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22056,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1454:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22059,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1466:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22058,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1453:25:69"
            },
            "returnParameters": {
              "id": 22064,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22063,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1506:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22062,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1505:14:69"
            },
            "scope": 22162,
            "src": "1436:159:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21984
            ],
            "body": {
              "id": 22095,
              "nodeType": "Block",
              "src": "1703:69:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 22088,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22077,
                        "src": "1727:4:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22089,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22079,
                        "src": "1733:2:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22090,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22081,
                        "src": "1737:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22087,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22025
                      ],
                      "referencedDeclaration": 22025,
                      "src": "1718:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1718:26:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22092,
                  "nodeType": "EmitStatement",
                  "src": "1713:31:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1761:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22086,
                  "id": 22094,
                  "nodeType": "Return",
                  "src": "1754:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "23b872dd",
            "id": 22096,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22083,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1671:8:69"
            },
            "parameters": {
              "id": 22082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22077,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1623:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22076,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22079,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1637:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22078,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1637:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22081,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1649:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22080,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1649:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:39:69"
            },
            "returnParameters": {
              "id": 22086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22085,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1689:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22084,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1689:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1688:14:69"
            },
            "scope": 22162,
            "src": "1601:171:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21993
            ],
            "body": {
              "id": 22115,
              "nodeType": "Block",
              "src": "1866:80:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22107,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1890:3:69",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 22108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1890:10:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22109,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22098,
                        "src": "1902:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22110,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22100,
                        "src": "1911:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22106,
                      "name": "Approval",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22033
                      ],
                      "referencedDeclaration": 22033,
                      "src": "1881:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1881:37:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22112,
                  "nodeType": "EmitStatement",
                  "src": "1876:42:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1935:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22105,
                  "id": 22114,
                  "nodeType": "Return",
                  "src": "1928:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "095ea7b3",
            "id": 22116,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22102,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1834:8:69"
            },
            "parameters": {
              "id": 22101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22098,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1795:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22097,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1795:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22100,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1812:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22099,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1812:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1794:30:69"
            },
            "returnParameters": {
              "id": 22105,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22104,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1852:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22103,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1852:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1851:14:69"
            },
            "scope": 22162,
            "src": "1778:168:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21998
            ],
            "body": {
              "id": 22128,
              "nodeType": "Block",
              "src": "2013:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2030:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2039:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22123,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2031:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22122,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2031:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2031:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22121,
                  "id": 22127,
                  "nodeType": "Return",
                  "src": "2023:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 22129,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22118,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1989:8:69"
            },
            "parameters": {
              "id": 22117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1972:2:69"
            },
            "returnParameters": {
              "id": 22121,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22120,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22129,
                  "src": "2007:4:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22119,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2007:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2006:6:69"
            },
            "scope": 22162,
            "src": "1952:96:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22005
            ],
            "body": {
              "id": 22143,
              "nodeType": "Block",
              "src": "2145:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2162:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2171:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2163:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22137,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2163:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22140,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2163:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22136,
                  "id": 22142,
                  "nodeType": "Return",
                  "src": "2155:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 22144,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22133,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2113:8:69"
            },
            "parameters": {
              "id": 22132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22131,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22144,
                  "src": "2073:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22130,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2073:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2072:26:69"
            },
            "returnParameters": {
              "id": 22136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22135,
                  "mutability": "mutable",
                  "name": "balance",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22144,
                  "src": "2131:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22134,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2131:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2130:14:69"
            },
            "scope": 22162,
            "src": "2054:126:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22014
            ],
            "body": {
              "id": 22160,
              "nodeType": "Block",
              "src": "2302:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2319:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2328:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2320:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22154,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2320:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2320:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22153,
                  "id": 22159,
                  "nodeType": "Return",
                  "src": "2312:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "dd62ed3e",
            "id": 22161,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22150,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2268:8:69"
            },
            "parameters": {
              "id": 22149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22146,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2205:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2205:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22148,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2231:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22147,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2231:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2204:49:69"
            },
            "returnParameters": {
              "id": 22153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22152,
                  "mutability": "mutable",
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2286:14:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22151,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2286:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2285:16:69"
            },
            "scope": 22162,
            "src": "2186:151:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22163,
        "src": "1015:1324:69"
      }
    ],
    "src": "41:2299:69"
  },
  "legacyAST": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/NoSettlementToken.sol",
    "exportedSymbols": {
      "ERC20Interface": [
        22015
      ],
      "NoSettlementToken": [
        22162
      ]
    },
    "id": 22163,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 21944,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:69"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 21945,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 38682,
        "src": "67:59:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
        "id": 21946,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 38486,
        "src": "127:60:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
        "id": 21947,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 39368,
        "src": "188:63:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
        "id": 21948,
        "nodeType": "ImportDirective",
        "scope": 22163,
        "sourceUnit": 39446,
        "src": "252:64:69",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 22015,
        "linearizedBaseContracts": [
          22015
        ],
        "name": "ERC20Interface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 21956,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 21955,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21950,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "365:20:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21949,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "365:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21952,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "387:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21951,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "387:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21954,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21956,
                  "src": "407:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21953,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "407:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "364:55:69"
            },
            "src": "350:70:69"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 21964,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 21963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21958,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "440:26:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21957,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "440:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21960,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "468:23:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21959,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21962,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21964,
                  "src": "493:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21961,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "493:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "439:66:69"
            },
            "src": "425:81:69"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a9059cbb",
            "id": 21973,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21966,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "534:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21965,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "534:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21968,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "546:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21967,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "546:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "533:25:69"
            },
            "returnParameters": {
              "id": 21972,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21971,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21973,
                  "src": "577:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21970,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "577:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "576:14:69"
            },
            "scope": 22015,
            "src": "516:75:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "23b872dd",
            "id": 21984,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21975,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "618:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21974,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "618:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21977,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "632:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21976,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "632:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21979,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "644:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21978,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "617:39:69"
            },
            "returnParameters": {
              "id": 21983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21982,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21984,
                  "src": "675:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21981,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "675:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "674:14:69"
            },
            "scope": 22015,
            "src": "596:93:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "095ea7b3",
            "id": 21993,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21986,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "711:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21985,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21988,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "728:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21987,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "728:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "710:30:69"
            },
            "returnParameters": {
              "id": 21992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21991,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21993,
                  "src": "759:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21990,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "759:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "758:14:69"
            },
            "scope": 22015,
            "src": "694:79:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 21998,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "798:2:69"
            },
            "returnParameters": {
              "id": 21997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21996,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 21998,
                  "src": "824:4:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21995,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "823:6:69"
            },
            "scope": 22015,
            "src": "778:52:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 22005,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22001,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22000,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22005,
                  "src": "854:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21999,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "854:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "853:20:69"
            },
            "returnParameters": {
              "id": 22004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22003,
                  "mutability": "mutable",
                  "name": "balance",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22005,
                  "src": "897:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22002,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "897:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "896:14:69"
            },
            "scope": 22015,
            "src": "835:76:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "dd62ed3e",
            "id": 22014,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22010,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22007,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "935:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22009,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "955:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22008,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "955:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:37:69"
            },
            "returnParameters": {
              "id": 22013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22012,
                  "mutability": "mutable",
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22014,
                  "src": "995:14:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "995:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "994:16:69"
            },
            "scope": 22015,
            "src": "916:95:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22163,
        "src": "319:694:69"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 22016,
              "name": "ERC20Interface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22015,
              "src": "1045:14:69",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20Interface_$22015",
                "typeString": "contract ERC20Interface"
              }
            },
            "id": 22017,
            "nodeType": "InheritanceSpecifier",
            "src": "1045:14:69"
          }
        ],
        "contractDependencies": [
          22015
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 22162,
        "linearizedBaseContracts": [
          22162,
          22015
        ],
        "name": "NoSettlementToken",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 22025,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 22024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22019,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1082:20:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22018,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1082:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22021,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1104:18:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22020,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22023,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22025,
                  "src": "1124:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22022,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1124:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1081:55:69"
            },
            "src": "1067:70:69"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 22033,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 22032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22027,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenOwner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1157:26:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1157:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22029,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1185:23:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22028,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1185:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22031,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22033,
                  "src": "1210:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22030,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1210:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1156:66:69"
            },
            "src": "1142:81:69"
          },
          {
            "constant": false,
            "functionSelector": "06fdde03",
            "id": 22035,
            "mutability": "mutable",
            "name": "name",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1229:18:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22034,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1229:6:69",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "95d89b41",
            "id": 22037,
            "mutability": "mutable",
            "name": "symbol",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1253:20:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22036,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1253:6:69",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "313ce567",
            "id": 22039,
            "mutability": "mutable",
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 22162,
            "src": "1279:21:69",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 22038,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1279:5:69",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22054,
              "nodeType": "Block",
              "src": "1329:97:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22044,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22042,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22037,
                      "src": "1339:6:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "4e4f5f53544c4d54",
                      "id": 22043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1348:10:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_caaa60e6d6235e43647cd3083cf1eef2af1b1864dea2d6054357f26a48018c59",
                        "typeString": "literal_string \"NO_STLMT\""
                      },
                      "value": "NO_STLMT"
                    },
                    "src": "1339:19:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 22045,
                  "nodeType": "ExpressionStatement",
                  "src": "1339:19:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22046,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22035,
                      "src": "1368:4:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "4e6f20536574746c656d656e7420546f6b656e",
                      "id": 22047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1375:21:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_351f5c538b34b8b6a68efda1815ada21f9810e5e694c7a3468fc8d876b02785e",
                        "typeString": "literal_string \"No Settlement Token\""
                      },
                      "value": "No Settlement Token"
                    },
                    "src": "1368:28:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 22049,
                  "nodeType": "ExpressionStatement",
                  "src": "1368:28:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22050,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22039,
                      "src": "1406:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "3138",
                      "id": 22051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1417:2:69",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_18_by_1",
                        "typeString": "int_const 18"
                      },
                      "value": "18"
                    },
                    "src": "1406:13:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 22053,
                  "nodeType": "ExpressionStatement",
                  "src": "1406:13:69"
                }
              ]
            },
            "documentation": null,
            "id": 22055,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 22040,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1319:2:69"
            },
            "returnParameters": {
              "id": 22041,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1329:0:69"
            },
            "scope": 22162,
            "src": "1308:118:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              21973
            ],
            "body": {
              "id": 22074,
              "nodeType": "Block",
              "src": "1520:75:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22066,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1544:3:69",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 22067,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1544:10:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22068,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22057,
                        "src": "1556:2:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22069,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22059,
                        "src": "1560:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22065,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22025
                      ],
                      "referencedDeclaration": 22025,
                      "src": "1535:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1535:32:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22071,
                  "nodeType": "EmitStatement",
                  "src": "1530:37:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1584:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22064,
                  "id": 22073,
                  "nodeType": "Return",
                  "src": "1577:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a9059cbb",
            "id": 22075,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22061,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1488:8:69"
            },
            "parameters": {
              "id": 22060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22057,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1454:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22056,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1454:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22059,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1466:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22058,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1453:25:69"
            },
            "returnParameters": {
              "id": 22064,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22063,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22075,
                  "src": "1506:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22062,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1505:14:69"
            },
            "scope": 22162,
            "src": "1436:159:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21984
            ],
            "body": {
              "id": 22095,
              "nodeType": "Block",
              "src": "1703:69:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 22088,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22077,
                        "src": "1727:4:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22089,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22079,
                        "src": "1733:2:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22090,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22081,
                        "src": "1737:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22087,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22025
                      ],
                      "referencedDeclaration": 22025,
                      "src": "1718:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1718:26:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22092,
                  "nodeType": "EmitStatement",
                  "src": "1713:31:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1761:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22086,
                  "id": 22094,
                  "nodeType": "Return",
                  "src": "1754:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "23b872dd",
            "id": 22096,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22083,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1671:8:69"
            },
            "parameters": {
              "id": 22082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22077,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1623:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22076,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22079,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1637:10:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22078,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1637:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22081,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1649:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22080,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1649:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:39:69"
            },
            "returnParameters": {
              "id": 22086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22085,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22096,
                  "src": "1689:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22084,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1689:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1688:14:69"
            },
            "scope": 22162,
            "src": "1601:171:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21993
            ],
            "body": {
              "id": 22115,
              "nodeType": "Block",
              "src": "1866:80:69",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22107,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1890:3:69",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 22108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1890:10:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22109,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22098,
                        "src": "1902:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22110,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22100,
                        "src": "1911:6:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 22106,
                      "name": "Approval",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22033
                      ],
                      "referencedDeclaration": 22033,
                      "src": "1881:8:69",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 22111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1881:37:69",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 22112,
                  "nodeType": "EmitStatement",
                  "src": "1876:42:69"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 22113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1935:4:69",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 22105,
                  "id": 22114,
                  "nodeType": "Return",
                  "src": "1928:11:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "095ea7b3",
            "id": 22116,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22102,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1834:8:69"
            },
            "parameters": {
              "id": 22101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22098,
                  "mutability": "mutable",
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1795:15:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22097,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1795:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22100,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1812:11:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22099,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1812:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1794:30:69"
            },
            "returnParameters": {
              "id": 22105,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22104,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22116,
                  "src": "1852:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22103,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1852:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1851:14:69"
            },
            "scope": 22162,
            "src": "1778:168:69",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              21998
            ],
            "body": {
              "id": 22128,
              "nodeType": "Block",
              "src": "2013:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2030:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2039:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22123,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2031:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22122,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2031:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2031:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22121,
                  "id": 22127,
                  "nodeType": "Return",
                  "src": "2023:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 22129,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22118,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1989:8:69"
            },
            "parameters": {
              "id": 22117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1972:2:69"
            },
            "returnParameters": {
              "id": 22121,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22120,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22129,
                  "src": "2007:4:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22119,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2007:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2006:6:69"
            },
            "scope": 22162,
            "src": "1952:96:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22005
            ],
            "body": {
              "id": 22143,
              "nodeType": "Block",
              "src": "2145:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2162:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2171:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2163:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22137,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2163:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22140,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2163:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22136,
                  "id": 22142,
                  "nodeType": "Return",
                  "src": "2155:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 22144,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22133,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2113:8:69"
            },
            "parameters": {
              "id": 22132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22131,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22144,
                  "src": "2073:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22130,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2073:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2072:26:69"
            },
            "returnParameters": {
              "id": 22136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22135,
                  "mutability": "mutable",
                  "name": "balance",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22144,
                  "src": "2131:12:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22134,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2131:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2130:14:69"
            },
            "scope": 22162,
            "src": "2054:126:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22014
            ],
            "body": {
              "id": 22160,
              "nodeType": "Block",
              "src": "2302:35:69",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "~",
                    "prefix": true,
                    "src": "2319:11:69",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 22156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2328:1:69",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 22155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2320:7:69",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 22154,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2320:7:69",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 22157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2320:10:69",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22153,
                  "id": 22159,
                  "nodeType": "Return",
                  "src": "2312:18:69"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "dd62ed3e",
            "id": 22161,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 22150,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2268:8:69"
            },
            "parameters": {
              "id": 22149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22146,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2205:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2205:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22148,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2231:7:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22147,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2231:7:69",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2204:49:69"
            },
            "returnParameters": {
              "id": 22153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22152,
                  "mutability": "mutable",
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 22161,
                  "src": "2286:14:69",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22151,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2286:4:69",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2285:16:69"
            },
            "scope": 22162,
            "src": "2186:151:69",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22163,
        "src": "1015:1324:69"
      }
    ],
    "src": "41:2299:69"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.11+commit.5ef660b1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-08-12T09:47:18.238Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}