{
  "contractName": "ISoxswapPair",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "amount1",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        }
      ],
      "name": "Burn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount0In",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "amount1In",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "amount0Out",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "amount1Out",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        }
      ],
      "name": "Swap",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "reserve0",
          "type": "uint112"
        },
        {
          "indexed": false,
          "name": "reserve1",
          "type": "uint112"
        }
      ],
      "name": "Sync",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "from",
          "type": "address"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PERMIT_TYPEHASH",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        },
        {
          "name": "deadline",
          "type": "uint256"
        },
        {
          "name": "v",
          "type": "uint8"
        },
        {
          "name": "r",
          "type": "bytes32"
        },
        {
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MINIMUM_LIQUIDITY",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token0",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token1",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getReserves",
      "outputs": [
        {
          "name": "reserve0",
          "type": "uint112"
        },
        {
          "name": "reserve1",
          "type": "uint112"
        },
        {
          "name": "blockTimestampLast",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "price0CumulativeLast",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "price1CumulativeLast",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kLast",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "to",
          "type": "address"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "name": "liquidity",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "to",
          "type": "address"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "name": "amount0",
          "type": "uint256"
        },
        {
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amount0Out",
          "type": "uint256"
        },
        {
          "name": "amount1Out",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "swap",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "to",
          "type": "address"
        }
      ],
      "name": "skim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "sync",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity >=0.4.23 <0.6.0;\r\n\r\ninterface ISoxswapPair {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n\r\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\r\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\r\n    function nonces(address owner) external view returns (uint);\r\n\r\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\r\n\r\n    event Mint(address indexed sender, uint amount0, uint amount1);\r\n    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\r\n    event Swap(\r\n        address indexed sender,\r\n        uint amount0In,\r\n        uint amount1In,\r\n        uint amount0Out,\r\n        uint amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function MINIMUM_LIQUIDITY() external pure returns (uint);\r\n    function factory() external view returns (address);\r\n    function token0() external view returns (address);\r\n    function token1() external view returns (address);\r\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r\n    function price0CumulativeLast() external view returns (uint);\r\n    function price1CumulativeLast() external view returns (uint);\r\n    function kLast() external view returns (uint);\r\n\r\n    function mint(address to) external returns (uint liquidity);\r\n    function burn(address payable to) external returns (uint amount0, uint amount1);\r\n    function swap(uint amount0Out, uint amount1Out, address payable to, bytes calldata data) external;\r\n    function skim(address payable to) external;\r\n    function sync() external;\r\n\r\n    function initialize(address, address) external;\r\n}\r\n",
  "sourcePath": "@sonicxchain/soxswap-core/contracts/interfaces/ISoxswapPair.sol",
  "ast": {
    "absolutePath": "@sonicxchain/soxswap-core/contracts/interfaces/ISoxswapPair.sol",
    "exportedSymbols": {
      "ISoxswapPair": [
        3516
      ]
    },
    "id": 3517,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3276,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".23",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:8"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 3516,
        "linearizedBaseContracts": [
          3516
        ],
        "name": "ISoxswapPair",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 3284,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3278,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "81:21:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3277,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "81:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3280,
                  "indexed": true,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "104:23:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3279,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "104:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3282,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "129:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3281,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "129:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "80:60:8"
            },
            "src": "66:75:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3292,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3286,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "162:20:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3285,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "162:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3288,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "184:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3287,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "184:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3290,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "204:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3289,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "204:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "161:54:8"
            },
            "src": "147:69:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3297,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3293,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "237:2:8"
            },
            "returnParameters": {
              "id": 3296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3295,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "263:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3294,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "262:15:8"
            },
            "scope": 3516,
            "src": "224:54:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3302,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3298,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "299:2:8"
            },
            "returnParameters": {
              "id": 3301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3300,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3302,
                  "src": "325:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3299,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "325:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "324:15:8"
            },
            "scope": 3516,
            "src": "284:56:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3307,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3303,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "363:2:8"
            },
            "returnParameters": {
              "id": 3306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3305,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3307,
                  "src": "389:5:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 3304,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "389:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "388:7:8"
            },
            "scope": 3516,
            "src": "346:50:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3312,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3308,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "422:2:8"
            },
            "returnParameters": {
              "id": 3311,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3310,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3312,
                  "src": "448:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3309,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "448:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "447:6:8"
            },
            "scope": 3516,
            "src": "402:52:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3319,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3314,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3319,
                  "src": "479:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3313,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "479:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "478:15:8"
            },
            "returnParameters": {
              "id": 3318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3317,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3319,
                  "src": "517:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3316,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "517:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "516:6:8"
            },
            "scope": 3516,
            "src": "460:63:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3328,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3321,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "548:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3320,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "548:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3323,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "563:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "563:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "547:32:8"
            },
            "returnParameters": {
              "id": 3327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3326,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "603:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3325,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "603:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "602:6:8"
            },
            "scope": 3516,
            "src": "529:80:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3337,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3330,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "634:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "634:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3332,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "651:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3331,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "651:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "633:29:8"
            },
            "returnParameters": {
              "id": 3336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3335,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "681:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3334,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "681:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "680:6:8"
            },
            "scope": 3516,
            "src": "617:70:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3346,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3339,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "711:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3341,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "723:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3340,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "723:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "710:24:8"
            },
            "returnParameters": {
              "id": 3345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3344,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "753:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3343,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "753:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "752:6:8"
            },
            "scope": 3516,
            "src": "693:66:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3357,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3353,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3348,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "787:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3347,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "787:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3350,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "801:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3349,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "801:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3352,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "813:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3351,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "786:38:8"
            },
            "returnParameters": {
              "id": 3356,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3355,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "843:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3354,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "843:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "842:6:8"
            },
            "scope": 3516,
            "src": "765:84:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3362,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "DOMAIN_SEPARATOR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3358,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "882:2:8"
            },
            "returnParameters": {
              "id": 3361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3360,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3362,
                  "src": "908:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3359,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "907:9:8"
            },
            "scope": 3516,
            "src": "857:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3367,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "PERMIT_TYPEHASH",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3363,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "947:2:8"
            },
            "returnParameters": {
              "id": 3366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3365,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3367,
                  "src": "973:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3364,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "973:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "972:9:8"
            },
            "scope": 3516,
            "src": "923:59:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3374,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "nonces",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3369,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3374,
                  "src": "1004:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3368,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1004:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1003:15:8"
            },
            "returnParameters": {
              "id": 3373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3372,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3374,
                  "src": "1042:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3371,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1042:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1041:6:8"
            },
            "scope": 3516,
            "src": "988:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3391,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "permit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3376,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1072:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3375,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1072:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3378,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1087:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3377,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1087:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3380,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1104:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3379,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3382,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1116:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3381,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1116:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3384,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1131:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 3383,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1131:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3386,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1140:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3385,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3388,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1151:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3387,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1151:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1071:90:8"
            },
            "returnParameters": {
              "id": 3390,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1170:0:8"
            },
            "scope": 3516,
            "src": "1056:115:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3399,
            "name": "Mint",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3393,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1190:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3392,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1190:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3395,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1214:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3394,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1214:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3397,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1228:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3396,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1228:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1189:52:8"
            },
            "src": "1179:63:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3409,
            "name": "Burn",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3401,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1259:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3400,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1259:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3403,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1283:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3402,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1283:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3405,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1297:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3404,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1297:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3407,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1311:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3406,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1311:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1258:72:8"
            },
            "src": "1248:83:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3423,
            "name": "Swap",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3411,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1358:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1358:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3413,
                  "indexed": false,
                  "name": "amount0In",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1391:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3412,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3415,
                  "indexed": false,
                  "name": "amount1In",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1416:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3414,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1416:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3417,
                  "indexed": false,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1441:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3416,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1441:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3419,
                  "indexed": false,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1467:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3418,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1467:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3421,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1493:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3420,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1493:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1347:171:8"
            },
            "src": "1337:182:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3429,
            "name": "Sync",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3425,
                  "indexed": false,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3429,
                  "src": "1536:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3424,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1536:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3427,
                  "indexed": false,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3429,
                  "src": "1554:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3426,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1535:36:8"
            },
            "src": "1525:47:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3434,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "MINIMUM_LIQUIDITY",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3430,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:2:8"
            },
            "returnParameters": {
              "id": 3433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3432,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "1632:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3431,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1632:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1631:6:8"
            },
            "scope": 3516,
            "src": "1580:58:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3439,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1660:2:8"
            },
            "returnParameters": {
              "id": 3438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3437,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3439,
                  "src": "1686:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3436,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1686:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1685:9:8"
            },
            "scope": 3516,
            "src": "1644:51:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3444,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1716:2:8"
            },
            "returnParameters": {
              "id": 3443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3442,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3444,
                  "src": "1742:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3441,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1742:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1741:9:8"
            },
            "scope": 3516,
            "src": "1701:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3449,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3445,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1772:2:8"
            },
            "returnParameters": {
              "id": 3448,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3447,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3449,
                  "src": "1798:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3446,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1798:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1797:9:8"
            },
            "scope": 3516,
            "src": "1757:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3458,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getReserves",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3450,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1833:2:8"
            },
            "returnParameters": {
              "id": 3457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3452,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1859:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3451,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1859:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3454,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1877:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3453,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1877:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3456,
                  "name": "blockTimestampLast",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1895:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3455,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1895:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1858:63:8"
            },
            "scope": 3516,
            "src": "1813:109:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3463,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price0CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3459,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1957:2:8"
            },
            "returnParameters": {
              "id": 3462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3461,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3463,
                  "src": "1983:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1983:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1982:6:8"
            },
            "scope": 3516,
            "src": "1928:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3468,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price1CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3464,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2024:2:8"
            },
            "returnParameters": {
              "id": 3467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3466,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3468,
                  "src": "2050:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3465,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2050:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2049:6:8"
            },
            "scope": 3516,
            "src": "1995:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3473,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "kLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3469,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2076:2:8"
            },
            "returnParameters": {
              "id": 3472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3471,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "2102:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3470,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2102:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2101:6:8"
            },
            "scope": 3516,
            "src": "2062:46:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3480,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3475,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3480,
                  "src": "2130:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3474,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2130:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2129:12:8"
            },
            "returnParameters": {
              "id": 3479,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3478,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 3480,
                  "src": "2160:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3477,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2160:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2159:16:8"
            },
            "scope": 3516,
            "src": "2116:60:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3489,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3482,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2196:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2196:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2195:20:8"
            },
            "returnParameters": {
              "id": 3488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3485,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2234:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3484,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2234:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3487,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2248:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3486,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2248:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2233:28:8"
            },
            "scope": 3516,
            "src": "2182:80:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3500,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swap",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3498,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3491,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2282:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3490,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2282:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3493,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2299:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3492,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2299:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3495,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2316:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3494,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2316:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3497,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2336:19:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3496,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2336:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2281:75:8"
            },
            "returnParameters": {
              "id": 3499,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2365:0:8"
            },
            "scope": 3516,
            "src": "2268:98:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3505,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "skim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3502,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3505,
                  "src": "2386:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3501,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2386:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2385:20:8"
            },
            "returnParameters": {
              "id": 3504,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2414:0:8"
            },
            "scope": 3516,
            "src": "2372:43:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3508,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sync",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3506,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2434:2:8"
            },
            "returnParameters": {
              "id": 3507,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2445:0:8"
            },
            "scope": 3516,
            "src": "2421:25:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3515,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3510,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3515,
                  "src": "2474:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3509,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2474:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3512,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3515,
                  "src": "2483:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3511,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2483:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2473:18:8"
            },
            "returnParameters": {
              "id": 3514,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2500:0:8"
            },
            "scope": 3516,
            "src": "2454:47:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3517,
        "src": "36:2468:8"
      }
    ],
    "src": "0:2506:8"
  },
  "legacyAST": {
    "absolutePath": "@sonicxchain/soxswap-core/contracts/interfaces/ISoxswapPair.sol",
    "exportedSymbols": {
      "ISoxswapPair": [
        3516
      ]
    },
    "id": 3517,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3276,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".23",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:8"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 3516,
        "linearizedBaseContracts": [
          3516
        ],
        "name": "ISoxswapPair",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 3284,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3278,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "81:21:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3277,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "81:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3280,
                  "indexed": true,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "104:23:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3279,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "104:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3282,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3284,
                  "src": "129:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3281,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "129:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "80:60:8"
            },
            "src": "66:75:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3292,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3286,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "162:20:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3285,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "162:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3288,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "184:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3287,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "184:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3290,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3292,
                  "src": "204:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3289,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "204:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "161:54:8"
            },
            "src": "147:69:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3297,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3293,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "237:2:8"
            },
            "returnParameters": {
              "id": 3296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3295,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "263:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3294,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "262:15:8"
            },
            "scope": 3516,
            "src": "224:54:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3302,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3298,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "299:2:8"
            },
            "returnParameters": {
              "id": 3301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3300,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3302,
                  "src": "325:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3299,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "325:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "324:15:8"
            },
            "scope": 3516,
            "src": "284:56:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3307,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3303,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "363:2:8"
            },
            "returnParameters": {
              "id": 3306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3305,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3307,
                  "src": "389:5:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 3304,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "389:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "388:7:8"
            },
            "scope": 3516,
            "src": "346:50:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3312,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3308,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "422:2:8"
            },
            "returnParameters": {
              "id": 3311,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3310,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3312,
                  "src": "448:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3309,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "448:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "447:6:8"
            },
            "scope": 3516,
            "src": "402:52:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3319,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3314,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3319,
                  "src": "479:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3313,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "479:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "478:15:8"
            },
            "returnParameters": {
              "id": 3318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3317,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3319,
                  "src": "517:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3316,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "517:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "516:6:8"
            },
            "scope": 3516,
            "src": "460:63:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3328,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3321,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "548:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3320,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "548:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3323,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "563:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "563:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "547:32:8"
            },
            "returnParameters": {
              "id": 3327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3326,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3328,
                  "src": "603:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3325,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "603:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "602:6:8"
            },
            "scope": 3516,
            "src": "529:80:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3337,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3330,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "634:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "634:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3332,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "651:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3331,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "651:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "633:29:8"
            },
            "returnParameters": {
              "id": 3336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3335,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3337,
                  "src": "681:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3334,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "681:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "680:6:8"
            },
            "scope": 3516,
            "src": "617:70:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3346,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3339,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "711:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3341,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "723:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3340,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "723:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "710:24:8"
            },
            "returnParameters": {
              "id": 3345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3344,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3346,
                  "src": "753:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3343,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "753:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "752:6:8"
            },
            "scope": 3516,
            "src": "693:66:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3357,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3353,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3348,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "787:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3347,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "787:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3350,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "801:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3349,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "801:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3352,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "813:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3351,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "786:38:8"
            },
            "returnParameters": {
              "id": 3356,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3355,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3357,
                  "src": "843:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3354,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "843:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "842:6:8"
            },
            "scope": 3516,
            "src": "765:84:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3362,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "DOMAIN_SEPARATOR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3358,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "882:2:8"
            },
            "returnParameters": {
              "id": 3361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3360,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3362,
                  "src": "908:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3359,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "907:9:8"
            },
            "scope": 3516,
            "src": "857:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3367,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "PERMIT_TYPEHASH",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3363,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "947:2:8"
            },
            "returnParameters": {
              "id": 3366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3365,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3367,
                  "src": "973:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3364,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "973:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "972:9:8"
            },
            "scope": 3516,
            "src": "923:59:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3374,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "nonces",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3369,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3374,
                  "src": "1004:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3368,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1004:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1003:15:8"
            },
            "returnParameters": {
              "id": 3373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3372,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3374,
                  "src": "1042:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3371,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1042:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1041:6:8"
            },
            "scope": 3516,
            "src": "988:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3391,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "permit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3376,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1072:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3375,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1072:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3378,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1087:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3377,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1087:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3380,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1104:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3379,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3382,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1116:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3381,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1116:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3384,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1131:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 3383,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1131:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3386,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1140:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3385,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3388,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 3391,
                  "src": "1151:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3387,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1151:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1071:90:8"
            },
            "returnParameters": {
              "id": 3390,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1170:0:8"
            },
            "scope": 3516,
            "src": "1056:115:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3399,
            "name": "Mint",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3393,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1190:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3392,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1190:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3395,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1214:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3394,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1214:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3397,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3399,
                  "src": "1228:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3396,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1228:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1189:52:8"
            },
            "src": "1179:63:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3409,
            "name": "Burn",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3401,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1259:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3400,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1259:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3403,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1283:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3402,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1283:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3405,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1297:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3404,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1297:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3407,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3409,
                  "src": "1311:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3406,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1311:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1258:72:8"
            },
            "src": "1248:83:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3423,
            "name": "Swap",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3411,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1358:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1358:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3413,
                  "indexed": false,
                  "name": "amount0In",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1391:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3412,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3415,
                  "indexed": false,
                  "name": "amount1In",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1416:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3414,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1416:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3417,
                  "indexed": false,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1441:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3416,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1441:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3419,
                  "indexed": false,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1467:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3418,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1467:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3421,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3423,
                  "src": "1493:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3420,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1493:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1347:171:8"
            },
            "src": "1337:182:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3429,
            "name": "Sync",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3425,
                  "indexed": false,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3429,
                  "src": "1536:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3424,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1536:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3427,
                  "indexed": false,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3429,
                  "src": "1554:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3426,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1535:36:8"
            },
            "src": "1525:47:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3434,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "MINIMUM_LIQUIDITY",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3430,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:2:8"
            },
            "returnParameters": {
              "id": 3433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3432,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "1632:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3431,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1632:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1631:6:8"
            },
            "scope": 3516,
            "src": "1580:58:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3439,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1660:2:8"
            },
            "returnParameters": {
              "id": 3438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3437,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3439,
                  "src": "1686:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3436,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1686:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1685:9:8"
            },
            "scope": 3516,
            "src": "1644:51:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3444,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1716:2:8"
            },
            "returnParameters": {
              "id": 3443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3442,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3444,
                  "src": "1742:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3441,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1742:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1741:9:8"
            },
            "scope": 3516,
            "src": "1701:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3449,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3445,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1772:2:8"
            },
            "returnParameters": {
              "id": 3448,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3447,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3449,
                  "src": "1798:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3446,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1798:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1797:9:8"
            },
            "scope": 3516,
            "src": "1757:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3458,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getReserves",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3450,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1833:2:8"
            },
            "returnParameters": {
              "id": 3457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3452,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1859:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3451,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1859:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3454,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1877:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 3453,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1877:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3456,
                  "name": "blockTimestampLast",
                  "nodeType": "VariableDeclaration",
                  "scope": 3458,
                  "src": "1895:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3455,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1895:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1858:63:8"
            },
            "scope": 3516,
            "src": "1813:109:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3463,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price0CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3459,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1957:2:8"
            },
            "returnParameters": {
              "id": 3462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3461,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3463,
                  "src": "1983:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1983:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1982:6:8"
            },
            "scope": 3516,
            "src": "1928:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3468,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price1CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3464,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2024:2:8"
            },
            "returnParameters": {
              "id": 3467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3466,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3468,
                  "src": "2050:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3465,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2050:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2049:6:8"
            },
            "scope": 3516,
            "src": "1995:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3473,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "kLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3469,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2076:2:8"
            },
            "returnParameters": {
              "id": 3472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3471,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "2102:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3470,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2102:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2101:6:8"
            },
            "scope": 3516,
            "src": "2062:46:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3480,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3475,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3480,
                  "src": "2130:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3474,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2130:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2129:12:8"
            },
            "returnParameters": {
              "id": 3479,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3478,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 3480,
                  "src": "2160:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3477,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2160:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2159:16:8"
            },
            "scope": 3516,
            "src": "2116:60:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3489,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3482,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2196:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2196:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2195:20:8"
            },
            "returnParameters": {
              "id": 3488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3485,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2234:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3484,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2234:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3487,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3489,
                  "src": "2248:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3486,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2248:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2233:28:8"
            },
            "scope": 3516,
            "src": "2182:80:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3500,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swap",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3498,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3491,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2282:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3490,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2282:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3493,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2299:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3492,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2299:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3495,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2316:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3494,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2316:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3497,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3500,
                  "src": "2336:19:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3496,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2336:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2281:75:8"
            },
            "returnParameters": {
              "id": 3499,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2365:0:8"
            },
            "scope": 3516,
            "src": "2268:98:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3505,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "skim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3502,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3505,
                  "src": "2386:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 3501,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2386:15:8",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2385:20:8"
            },
            "returnParameters": {
              "id": 3504,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2414:0:8"
            },
            "scope": 3516,
            "src": "2372:43:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3508,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sync",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3506,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2434:2:8"
            },
            "returnParameters": {
              "id": 3507,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2445:0:8"
            },
            "scope": 3516,
            "src": "2421:25:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 3515,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3510,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3515,
                  "src": "2474:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3509,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2474:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3512,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3515,
                  "src": "2483:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3511,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2483:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2473:18:8"
            },
            "returnParameters": {
              "id": 3514,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2500:0:8"
            },
            "scope": 3516,
            "src": "2454:47:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3517,
        "src": "36:2468:8"
      }
    ],
    "src": "0:2506:8"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.4+commit.7b0de266.mod.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2020-12-15T09:23:58.347Z"
}