{
  "contractName": "DB",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "destroy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        }
      ],
      "name": "destroyAndSend",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address payable",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "permissionStatusForContract",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "permittedContractsAddresses",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getAddressValue",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "value",
          "type": "address"
        }
      ],
      "name": "setAddressValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteAddressValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getBoolValue",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "value",
          "type": "bool"
        }
      ],
      "name": "setBoolValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteBoolValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getBytesValue",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        }
      ],
      "name": "setBytesValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteBytesValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getBytes32Value",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "value",
          "type": "bytes32"
        }
      ],
      "name": "setBytes32Value",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteBytes32Value",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getIntValue",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "value",
          "type": "int256"
        }
      ],
      "name": "setIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getUIntValue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "setUIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "addUIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "subUIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteUIntValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getUInt8Value",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "uint8",
          "name": "value",
          "type": "uint8"
        }
      ],
      "name": "setUInt8Value",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteUInt8Value",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "getStringValue",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "string",
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setStringValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        }
      ],
      "name": "deleteStringValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "contractAddress",
          "type": "address"
        }
      ],
      "name": "addPermittedContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "addresses",
          "type": "address[]"
        }
      ],
      "name": "addPermittedContracts",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addresses",
          "type": "address"
        }
      ],
      "name": "removePermittedContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "addresses",
          "type": "address[]"
        }
      ],
      "name": "removePermittedContracts",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "permittedContractsCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "getPermittedContracts",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "addresses",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "recordFieldNames",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint8[]",
          "name": "recordFieldTypes",
          "type": "uint8[]"
        }
      ],
      "name": "getObjectData",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "items",
          "type": "uint256[]"
        },
        {
          "internalType": "string",
          "name": "stringItem",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint8[]",
          "name": "recordFieldTypes",
          "type": "uint8[]"
        }
      ],
      "name": "getCountOfIntegerTypes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordFieldName",
          "type": "bytes32"
        },
        {
          "internalType": "uint8",
          "name": "uintType",
          "type": "uint8"
        }
      ],
      "name": "getCorrespondingIntegerValue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "logicEntry",
          "type": "bool"
        }
      ],
      "name": "boolToUInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function",
      "constant": true
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"addPermittedContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"name\":\"addPermittedContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"addUIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"logicEntry\",\"type\":\"bool\"}],\"name\":\"boolToUInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteAddressValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteBoolValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteBytes32Value\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteBytesValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteStringValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteUInt8Value\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"deleteUIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"destroyAndSend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getAddressValue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getBoolValue\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getBytes32Value\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getBytesValue\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"uintType\",\"type\":\"uint8\"}],\"name\":\"getCorrespondingIntegerValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8[]\",\"name\":\"recordFieldTypes\",\"type\":\"uint8[]\"}],\"name\":\"getCountOfIntegerTypes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getIntValue\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"recordFieldNames\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8[]\",\"name\":\"recordFieldTypes\",\"type\":\"uint8[]\"}],\"name\":\"getObjectData\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"items\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"stringItem\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPermittedContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getStringValue\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getUInt8Value\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"}],\"name\":\"getUIntValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"permissionStatusForContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"permittedContractsAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permittedContractsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addresses\",\"type\":\"address\"}],\"name\":\"removePermittedContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"name\":\"removePermittedContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setAddressValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setBoolValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"setBytes32Value\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setBytesValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"setIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setStringValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"value\",\"type\":\"uint8\"}],\"name\":\"setUInt8Value\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setUIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recordFieldName\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"subUIntValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"destroy()\":{\"details\":\"Transfers the current balance to the owner and terminates the contract.\"},\"isOwner()\":{\"returns\":{\"_0\":\"true if `msg.sender` is the owner of the contract.\"}},\"owner()\":{\"returns\":{\"_0\":\"the address of the owner.\"}},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/dh206382/dev/eth-vue/contracts/DB.sol\":\"DB\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/dh206382/dev/eth-vue/contracts/DB.sol\":{\"keccak256\":\"0x2aacd8ab5e9d728e38dd1fee1d258aa2f43de39f96c387139fecd0f8cc35184e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ea40f63eb27a50d6c7e421c7f9872e949610724eb4633171af402137d1ca190f\",\"dweb:/ipfs/QmUhru9HAnz5yMHRSFCXyRXmQCra8qVpBx7FMttwVqXYiE\"]},\"/home/dh206382/dev/eth-vue/contracts/lib/arachnid/solidity-stringutils/strings.sol\":{\"keccak256\":\"0x9aab3a5454f9f26f5e9e97956c70a8b2a4be846ce8a5e460bfafe2ccbc929b6e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://10df44748106d09a6ecab7c184357d8c31b947decce5c789acdaf7baaa59aa41\",\"dweb:/ipfs/QmPd8xbrbp5PiXiWR2MJJXWKgbyTgxeishoRdhyvXaUjSJ\"]},\"/home/dh206382/dev/eth-vue/contracts/zeppelin/lifecycle/Destructible.sol\":{\"keccak256\":\"0x42e18bc973417c3c6c2af43731da032d8a85467c57b0196c5fe3762bd56df513\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://08696f08004ced8593b426696368586305eb2a530931b16a45436b2248a2002c\",\"dweb:/ipfs/QmacFr5E5SNojeQpohjJmSSy84M6r5mA4L2QvNnfKLQfec\"]},\"/home/dh206382/dev/eth-vue/contracts/zeppelin/math/SafeMath.sol\":{\"keccak256\":\"0x30416269e95bb0ec2bb035da8ad9d68e710eb360c21a5ac8a3d23b42effb40c8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dc8a2a2963cd43894e77bcfaf11aef4f357cf66458e8c9ffd7f9f03161205f53\",\"dweb:/ipfs/QmXy3dR5uBtVFK7CsnSDsqGmXUFpA9HsnPsoknAe4SvhHX\"]},\"/home/dh206382/dev/eth-vue/contracts/zeppelin/ownership/Ownable.sol\":{\"keccak256\":\"0x51d58c7901f38b4b45dcc3ff827af8c824427fef4eb8aeb8b6a7e48c634a6799\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://71edb2450d287d3474a01c1a465be5210b0774dc036f7a786d12c584570f2049\",\"dweb:/ipfs/QmaUk1fUhcuiqfy4kp7XLDN2CgBakoLhPqJ9xiQ4uvpTaK\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a0319163317808255604051600160a060020a039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3611f0b806100696000396000f3fe608060405234801561001057600080fd5b5060043610610290576000357c0100000000000000000000000000000000000000000000000000000000900480638267a9ee1161016e578063a77aa49e116100e0578063c9a52d2c116100a4578063c9a52d2c14610a21578063dc02511e14610a98578063f2fde38b14610b08578063f5074f4114610b2e578063f586606614610b54578063ffbd400b14610bcb57610290565b8063a77aa49e1461097b578063a98ad1991461099e578063ba69fcaa146109c4578063bdc963d8146109e1578063c8d1c017146109fe57610290565b80638f32d59b116101325780638f32d59b146108c55780638ffa9690146108e15780639007127b146108fe57806393fe42481461091b5780639420e58d14610938578063a209a29c1461095e57610290565b80638267a9ee146106fc57806382914e5d1461071957806383197ef01461089857806384d7c99d146108a05780638da5cb5b146108bd57610290565b80633836fe6e116102075780635a2bf25a116101cb5780635a2bf25a146105b25780636aebbbd9146105de5780636d38156f14610601578063715018a6146106a457806373fb35ee146106ac5780637a0e03ec146106c957610290565b80633836fe6e1461047657806344bfa56e1461049c5780634c77e5ba1461052e578063506d7d001461056757806352d2d83d1461058d57610290565b80630c55d925116102595780630c55d92514610396578063124f2418146103b357806325cf512d146103d057806326df61f6146103f35780633138ee5c146103fb5780633562fd201461045357610290565b8062a35aa214610295578063025ec81a146102b4578063043106c0146102e35780630489fa70146103005780630bd8515814610370575b600080fd5b6102b2600480360360208110156102ab57600080fd5b5035610bea565b005b6102d1600480360360208110156102ca57600080fd5b5035610c41565b60408051918252519081900360200190f35b6102b2600480360360208110156102f957600080fd5b5035610c56565b6102b26004803603602081101561031657600080fd5b81019060208101813564010000000081111561033157600080fd5b82018360208201111561034357600080fd5b8035906020019184602083028401116401000000008311171561036557600080fd5b509092509050610cc0565b6102b26004803603604081101561038657600080fd5b508035906020013560ff16610d2c565b6102b2600480360360208110156103ac57600080fd5b5035610d8d565b6102b2600480360360208110156103c957600080fd5b5035610de6565b6102b2600480360360408110156103e657600080fd5b5080359060200135610e36565b6102d1610e87565b610403610ee6565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043f578181015183820152602001610427565b505050509050019250505060405180910390f35b6102b26004803603604081101561046957600080fd5b5080359060200135610fde565b6102b26004803603602081101561048c57600080fd5b5035600160a060020a031661102f565b6104b9600480360360208110156104b257600080fd5b50356110b0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f35781810151838201526020016104db565b50505050905090810190601f1680156105205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61054b6004803603602081101561054457600080fd5b5035611151565b60408051600160a060020a039092168252519081900360200190f35b6102d16004803603604081101561057d57600080fd5b508035906020013560ff1661116c565b6102b2600480360360408110156105a357600080fd5b5080359060200135151561120a565b6102b2600480360360408110156105c857600080fd5b5080359060200135600160a060020a0316611269565b6102b2600480360360408110156105f457600080fd5b50803590602001356112e3565b6102d16004803603602081101561061757600080fd5b81019060208101813564010000000081111561063257600080fd5b82018360208201111561064457600080fd5b8035906020019184602083028401116401000000008311171561066657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611351945050505050565b6102b2611391565b61054b600480360360208110156106c257600080fd5b50356113f9565b6106e6600480360360208110156106df57600080fd5b5035611423565b6040805160ff9092168252519081900360200190f35b6102b26004803603602081101561071257600080fd5b5035611438565b6107db6004803603604081101561072f57600080fd5b81019060208101813564010000000081111561074a57600080fd5b82018360208201111561075c57600080fd5b8035906020019184602083028401116401000000008311171561077e57600080fd5b91939092909160208101903564010000000081111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460208302840111640100000000831117156107d057600080fd5b509092509050611488565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561081f578181015183820152602001610807565b50505050905001838103825284818151815260200191508051906020019080838360005b8381101561085b578181015183820152602001610843565b50505050905090810190601f1680156108885780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6102b2611695565b6102b2600480360360208110156108b657600080fd5b50356116b9565b61054b611710565b6108cd61171f565b604080519115158252519081900360200190f35b6108cd600480360360208110156108f757600080fd5b5035611730565b6102d16004803603602081101561091457600080fd5b5035611745565b6102b26004803603602081101561093157600080fd5b5035611757565b6108cd6004803603602081101561094e57600080fd5b5035600160a060020a03166117a7565b6104b96004803603602081101561097457600080fd5b50356117bc565b6102b26004803603604081101561099157600080fd5b5080359060200135611826565b6102b2600480360360208110156109b457600080fd5b5035600160a060020a0316611877565b6102b2600480360360208110156109da57600080fd5b50356118a9565b6102d1600480360360208110156109f757600080fd5b50356118ff565b6102b260048036036040811015610a1457600080fd5b5080359060200135611911565b6102b260048036036040811015610a3757600080fd5b81359190810190604081016020820135640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b509092509050611969565b6102b260048036036020811015610aae57600080fd5b810190602081018135640100000000811115610ac957600080fd5b820183602082011115610adb57600080fd5b80359060200191846020830284011164010000000083111715610afd57600080fd5b5090925090506119c7565b6102b260048036036020811015610b1e57600080fd5b5035600160a060020a0316611a9a565b6102b260048036036020811015610b4457600080fd5b5035600160a060020a0316611ab4565b6102b260048036036040811015610b6a57600080fd5b81359190810190604081016020820135640100000000811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b80359060200191846001830284011164010000000083111715610bc057600080fd5b509092509050611ad1565b6102d160048036036020811015610be157600080fd5b50351515611bb3565b3360009081526002602052604090205460ff1680610c205750610c0b611710565b600160a060020a031633600160a060020a0316145b610c2957600080fd5b6000908152600460205260409020805460ff19169055565b6000818152600660205260409020545b919050565b3360009081526002602052604090205460ff1680610c8c5750610c77611710565b600160a060020a031633600160a060020a0316145b610c9557600080fd5b6000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b610cc861171f565b610cd157600080fd5b60005b81811015610d2757600060026000858585818110610cee57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610cd4565b505050565b3360009081526002602052604090205460ff1680610d625750610d4d611710565b600160a060020a031633600160a060020a0316145b610d6b57600080fd5b600091825260096020526040909120805460ff191660ff909216919091179055565b3360009081526002602052604090205460ff1680610dc35750610dae611710565b600160a060020a031633600160a060020a0316145b610dcc57600080fd5b6000818152600560205260408120610de391611d5e565b50565b3360009081526002602052604090205460ff1680610e1c5750610e07611710565b600160a060020a031633600160a060020a0316145b610e2557600080fd5b600090815260066020526040812055565b3360009081526002602052604090205460ff1680610e6c5750610e57611710565b600160a060020a031633600160a060020a0316145b610e7557600080fd5b60009182526006602052604090912055565b6000805b600154811015610ee2576002600060018381548110610ea657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610eda576001909101905b600101610e8b565b5090565b6060610ef0610e87565b67ffffffffffffffff81118015610f0657600080fd5b50604051908082528060200260200182016040528015610f30578160200160208202803683370190505b50905060005b600154811015610ee2576002600060018381548110610f5157fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610fd65760018181548110610f8b57fe5b9060005260206000200160009054906101000a9004600160a060020a0316828281518110610fb557fe5b6020026020010190600160a060020a03169081600160a060020a0316815250505b600101610f36565b3360009081526002602052604090205460ff16806110145750610fff611710565b600160a060020a031633600160a060020a0316145b61101d57600080fd5b60009182526008602052604090912055565b61103761171f565b61104057600080fd5b600160a060020a03166000818152600260205260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b60008181526005602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156111455780601f1061111a57610100808354040283529160200191611145565b820191906000526020600020905b81548152906001019060200180831161112857829003601f168201915b50505050509050919050565b600090815260036020526040902054600160a060020a031690565b60008160ff16600114156111925761118b61118684611730565b611bb3565b9050611204565b8160ff16600214156111b1576111a783611423565b60ff169050611204565b8160ff16600314156111c65761118b836118ff565b8160ff16600414156111eb576111db83611151565b600160a060020a03169050611204565b8160ff16600514156112005761118b83610c41565b5060005b92915050565b3360009081526002602052604090205460ff1680611240575061122b611710565b600160a060020a031633600160a060020a0316145b61124957600080fd5b600091825260046020526040909120805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061129f575061128a611710565b600160a060020a031633600160a060020a0316145b6112a857600080fd5b600091825260036020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b3360009081526002602052604090205460ff16806113195750611304611710565b600160a060020a031633600160a060020a0316145b61132257600080fd5b60008281526008602052604090205461133b9082611bcb565b6000928352600860205260409092209190915550565b6000805b825181101561138b5782818151811061136a57fe5b602002602001015160ff16600714611383576001820191505b600101611355565b50919050565b61139961171f565b6113a257600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6001818154811061140957600080fd5b600091825260209091200154600160a060020a0316905081565b60009081526009602052604090205460ff1690565b3360009081526002602052604090205460ff168061146e5750611459611710565b600160a060020a031633600160a060020a0316145b61147757600080fd5b600090815260076020526040812055565b60608060006114c985858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061135192505050565b905060008487816114d657fe5b04905081810267ffffffffffffffff811180156114f257600080fd5b5060405190808252806020026020018201604052801561151c578160200160208202803683370190505b5093506000805b828110156116885760005b8781101561163357818802810189898381811061154757fe5b9050602002013560ff1660ff16600714156115db5761159161158261157d8e8e8581811061157157fe5b905060200201356117bc565b611be0565b61158b89611be0565b90611c05565b96506115d46115826040518060400160405280601181526020017f3636362d2d4554482d5655452d2d363636000000000000000000000000000000815250611be0565b965061162a565b61160c8c8c838181106115ea57fe5b905060200201358b8b858181106115fd57fe5b9050602002013560ff1661116c565b88858151811061161857fe5b60209081029190910101526001909301925b5060010161152e565b5061167e6116756040518060400160405280601681526020017f3636362d2d4554482d5655452d4c4953542d2d36363600000000000000000000815250611be0565b61158b87611be0565b9450600101611523565b5050505094509492505050565b61169d61171f565b6116a657600080fd5b6116ae611710565b600160a060020a0316ff5b3360009081526002602052604090205460ff16806116ef57506116da611710565b600160a060020a031633600160a060020a0316145b6116f857600080fd5b6000908152600960205260409020805460ff19169055565b600054600160a060020a031690565b600054600160a060020a0316331490565b60009081526004602052604090205460ff1690565b60009081526007602052604090205490565b3360009081526002602052604090205460ff168061178d5750611778611710565b600160a060020a031633600160a060020a0316145b61179657600080fd5b600090815260086020526040812055565b60026020526000908152604090205460ff1681565b6000818152600a602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156111455780601f1061111a57610100808354040283529160200191611145565b3360009081526002602052604090205460ff168061185c5750611847611710565b600160a060020a031633600160a060020a0316145b61186557600080fd5b60009182526007602052604090912055565b61187f61171f565b61188857600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b3360009081526002602052604090205460ff16806118df57506118ca611710565b600160a060020a031633600160a060020a0316145b6118e857600080fd5b6000818152600a60205260408120610de391611d5e565b60009081526008602052604090205490565b3360009081526002602052604090205460ff16806119475750611932611710565b600160a060020a031633600160a060020a0316145b61195057600080fd5b60008281526008602052604090205461133b9082611c8c565b3360009081526002602052604090205460ff168061199f575061198a611710565b600160a060020a031633600160a060020a0316145b6119a857600080fd5b60008381526005602052604090206119c1908383611da2565b50505050565b6119cf61171f565b6119d857600080fd5b60005b81811015610d27576001600260008585858181106119f557fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506001838383818110611a4a57fe5b8354600181810186556000958652602095869020909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03969093029490940135949094161790915550016119db565b611aa261171f565b611aab57600080fd5b610de381611ca5565b611abc61171f565b611ac557600080fd5b80600160a060020a0316ff5b3360009081526002602052604090205460ff1680611b075750611af2611710565b600160a060020a031633600160a060020a0316145b611b1057600080fd5b611b90611b5283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be092505050565b61158b6040518060400160405280600181526020017f5e00000000000000000000000000000000000000000000000000000000000000815250611be0565b6000848152600a6020908152604090912082516119c19391929190910190611e2a565b60008115611bc357506001610c51565b506000610c51565b600082821115611bda57600080fd5b50900390565b611be8611ea6565b506040805180820190915281518152602082810190820152919050565b8051825160609182910167ffffffffffffffff81118015611c2557600080fd5b506040519080825280601f01601f191660200182016040528015611c50576020820181803683370190505b5090506000602082019050611c6e8186602001518760000151611d20565b845160208501518551611c849284019190611d20565b509392505050565b600082820183811015611c9e57600080fd5b9392505050565b600160a060020a038116611cb857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b5b60208110611d40578151835260209283019290910190601f1901611d21565b905182516020929092036101000a6000190180199091169116179052565b50805460018160011615610100020316600290046000825580601f10611d845750610de3565b601f016020900490600052602060002090810190610de39190611ec0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611dd85760008555611e1e565b82601f10611df15782800160ff19823516178555611e1e565b82800160010185558215611e1e579182015b82811115611e1e578235825591602001919060010190611e03565b50610ee2929150611ec0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611e605760008555611e1e565b82601f10611e7957805160ff1916838001178555611e1e565b82800160010185558215611e1e579182015b82811115611e1e578251825591602001919060010190611e8b565b604051806040016040528060008152602001600081525090565b5b80821115610ee25760008155600101611ec156fea2646970667358221220a7ece2bb2819e18184476e30ca0348259eee292774ef47ce1d8b8697fc180ab064736f6c63430007040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b5060043610610290576000357c0100000000000000000000000000000000000000000000000000000000900480638267a9ee1161016e578063a77aa49e116100e0578063c9a52d2c116100a4578063c9a52d2c14610a21578063dc02511e14610a98578063f2fde38b14610b08578063f5074f4114610b2e578063f586606614610b54578063ffbd400b14610bcb57610290565b8063a77aa49e1461097b578063a98ad1991461099e578063ba69fcaa146109c4578063bdc963d8146109e1578063c8d1c017146109fe57610290565b80638f32d59b116101325780638f32d59b146108c55780638ffa9690146108e15780639007127b146108fe57806393fe42481461091b5780639420e58d14610938578063a209a29c1461095e57610290565b80638267a9ee146106fc57806382914e5d1461071957806383197ef01461089857806384d7c99d146108a05780638da5cb5b146108bd57610290565b80633836fe6e116102075780635a2bf25a116101cb5780635a2bf25a146105b25780636aebbbd9146105de5780636d38156f14610601578063715018a6146106a457806373fb35ee146106ac5780637a0e03ec146106c957610290565b80633836fe6e1461047657806344bfa56e1461049c5780634c77e5ba1461052e578063506d7d001461056757806352d2d83d1461058d57610290565b80630c55d925116102595780630c55d92514610396578063124f2418146103b357806325cf512d146103d057806326df61f6146103f35780633138ee5c146103fb5780633562fd201461045357610290565b8062a35aa214610295578063025ec81a146102b4578063043106c0146102e35780630489fa70146103005780630bd8515814610370575b600080fd5b6102b2600480360360208110156102ab57600080fd5b5035610bea565b005b6102d1600480360360208110156102ca57600080fd5b5035610c41565b60408051918252519081900360200190f35b6102b2600480360360208110156102f957600080fd5b5035610c56565b6102b26004803603602081101561031657600080fd5b81019060208101813564010000000081111561033157600080fd5b82018360208201111561034357600080fd5b8035906020019184602083028401116401000000008311171561036557600080fd5b509092509050610cc0565b6102b26004803603604081101561038657600080fd5b508035906020013560ff16610d2c565b6102b2600480360360208110156103ac57600080fd5b5035610d8d565b6102b2600480360360208110156103c957600080fd5b5035610de6565b6102b2600480360360408110156103e657600080fd5b5080359060200135610e36565b6102d1610e87565b610403610ee6565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043f578181015183820152602001610427565b505050509050019250505060405180910390f35b6102b26004803603604081101561046957600080fd5b5080359060200135610fde565b6102b26004803603602081101561048c57600080fd5b5035600160a060020a031661102f565b6104b9600480360360208110156104b257600080fd5b50356110b0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f35781810151838201526020016104db565b50505050905090810190601f1680156105205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61054b6004803603602081101561054457600080fd5b5035611151565b60408051600160a060020a039092168252519081900360200190f35b6102d16004803603604081101561057d57600080fd5b508035906020013560ff1661116c565b6102b2600480360360408110156105a357600080fd5b5080359060200135151561120a565b6102b2600480360360408110156105c857600080fd5b5080359060200135600160a060020a0316611269565b6102b2600480360360408110156105f457600080fd5b50803590602001356112e3565b6102d16004803603602081101561061757600080fd5b81019060208101813564010000000081111561063257600080fd5b82018360208201111561064457600080fd5b8035906020019184602083028401116401000000008311171561066657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611351945050505050565b6102b2611391565b61054b600480360360208110156106c257600080fd5b50356113f9565b6106e6600480360360208110156106df57600080fd5b5035611423565b6040805160ff9092168252519081900360200190f35b6102b26004803603602081101561071257600080fd5b5035611438565b6107db6004803603604081101561072f57600080fd5b81019060208101813564010000000081111561074a57600080fd5b82018360208201111561075c57600080fd5b8035906020019184602083028401116401000000008311171561077e57600080fd5b91939092909160208101903564010000000081111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460208302840111640100000000831117156107d057600080fd5b509092509050611488565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561081f578181015183820152602001610807565b50505050905001838103825284818151815260200191508051906020019080838360005b8381101561085b578181015183820152602001610843565b50505050905090810190601f1680156108885780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6102b2611695565b6102b2600480360360208110156108b657600080fd5b50356116b9565b61054b611710565b6108cd61171f565b604080519115158252519081900360200190f35b6108cd600480360360208110156108f757600080fd5b5035611730565b6102d16004803603602081101561091457600080fd5b5035611745565b6102b26004803603602081101561093157600080fd5b5035611757565b6108cd6004803603602081101561094e57600080fd5b5035600160a060020a03166117a7565b6104b96004803603602081101561097457600080fd5b50356117bc565b6102b26004803603604081101561099157600080fd5b5080359060200135611826565b6102b2600480360360208110156109b457600080fd5b5035600160a060020a0316611877565b6102b2600480360360208110156109da57600080fd5b50356118a9565b6102d1600480360360208110156109f757600080fd5b50356118ff565b6102b260048036036040811015610a1457600080fd5b5080359060200135611911565b6102b260048036036040811015610a3757600080fd5b81359190810190604081016020820135640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b509092509050611969565b6102b260048036036020811015610aae57600080fd5b810190602081018135640100000000811115610ac957600080fd5b820183602082011115610adb57600080fd5b80359060200191846020830284011164010000000083111715610afd57600080fd5b5090925090506119c7565b6102b260048036036020811015610b1e57600080fd5b5035600160a060020a0316611a9a565b6102b260048036036020811015610b4457600080fd5b5035600160a060020a0316611ab4565b6102b260048036036040811015610b6a57600080fd5b81359190810190604081016020820135640100000000811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b80359060200191846001830284011164010000000083111715610bc057600080fd5b509092509050611ad1565b6102d160048036036020811015610be157600080fd5b50351515611bb3565b3360009081526002602052604090205460ff1680610c205750610c0b611710565b600160a060020a031633600160a060020a0316145b610c2957600080fd5b6000908152600460205260409020805460ff19169055565b6000818152600660205260409020545b919050565b3360009081526002602052604090205460ff1680610c8c5750610c77611710565b600160a060020a031633600160a060020a0316145b610c9557600080fd5b6000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b610cc861171f565b610cd157600080fd5b60005b81811015610d2757600060026000858585818110610cee57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610cd4565b505050565b3360009081526002602052604090205460ff1680610d625750610d4d611710565b600160a060020a031633600160a060020a0316145b610d6b57600080fd5b600091825260096020526040909120805460ff191660ff909216919091179055565b3360009081526002602052604090205460ff1680610dc35750610dae611710565b600160a060020a031633600160a060020a0316145b610dcc57600080fd5b6000818152600560205260408120610de391611d5e565b50565b3360009081526002602052604090205460ff1680610e1c5750610e07611710565b600160a060020a031633600160a060020a0316145b610e2557600080fd5b600090815260066020526040812055565b3360009081526002602052604090205460ff1680610e6c5750610e57611710565b600160a060020a031633600160a060020a0316145b610e7557600080fd5b60009182526006602052604090912055565b6000805b600154811015610ee2576002600060018381548110610ea657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610eda576001909101905b600101610e8b565b5090565b6060610ef0610e87565b67ffffffffffffffff81118015610f0657600080fd5b50604051908082528060200260200182016040528015610f30578160200160208202803683370190505b50905060005b600154811015610ee2576002600060018381548110610f5157fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610fd65760018181548110610f8b57fe5b9060005260206000200160009054906101000a9004600160a060020a0316828281518110610fb557fe5b6020026020010190600160a060020a03169081600160a060020a0316815250505b600101610f36565b3360009081526002602052604090205460ff16806110145750610fff611710565b600160a060020a031633600160a060020a0316145b61101d57600080fd5b60009182526008602052604090912055565b61103761171f565b61104057600080fd5b600160a060020a03166000818152600260205260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b60008181526005602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156111455780601f1061111a57610100808354040283529160200191611145565b820191906000526020600020905b81548152906001019060200180831161112857829003601f168201915b50505050509050919050565b600090815260036020526040902054600160a060020a031690565b60008160ff16600114156111925761118b61118684611730565b611bb3565b9050611204565b8160ff16600214156111b1576111a783611423565b60ff169050611204565b8160ff16600314156111c65761118b836118ff565b8160ff16600414156111eb576111db83611151565b600160a060020a03169050611204565b8160ff16600514156112005761118b83610c41565b5060005b92915050565b3360009081526002602052604090205460ff1680611240575061122b611710565b600160a060020a031633600160a060020a0316145b61124957600080fd5b600091825260046020526040909120805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061129f575061128a611710565b600160a060020a031633600160a060020a0316145b6112a857600080fd5b600091825260036020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b3360009081526002602052604090205460ff16806113195750611304611710565b600160a060020a031633600160a060020a0316145b61132257600080fd5b60008281526008602052604090205461133b9082611bcb565b6000928352600860205260409092209190915550565b6000805b825181101561138b5782818151811061136a57fe5b602002602001015160ff16600714611383576001820191505b600101611355565b50919050565b61139961171f565b6113a257600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6001818154811061140957600080fd5b600091825260209091200154600160a060020a0316905081565b60009081526009602052604090205460ff1690565b3360009081526002602052604090205460ff168061146e5750611459611710565b600160a060020a031633600160a060020a0316145b61147757600080fd5b600090815260076020526040812055565b60608060006114c985858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061135192505050565b905060008487816114d657fe5b04905081810267ffffffffffffffff811180156114f257600080fd5b5060405190808252806020026020018201604052801561151c578160200160208202803683370190505b5093506000805b828110156116885760005b8781101561163357818802810189898381811061154757fe5b9050602002013560ff1660ff16600714156115db5761159161158261157d8e8e8581811061157157fe5b905060200201356117bc565b611be0565b61158b89611be0565b90611c05565b96506115d46115826040518060400160405280601181526020017f3636362d2d4554482d5655452d2d363636000000000000000000000000000000815250611be0565b965061162a565b61160c8c8c838181106115ea57fe5b905060200201358b8b858181106115fd57fe5b9050602002013560ff1661116c565b88858151811061161857fe5b60209081029190910101526001909301925b5060010161152e565b5061167e6116756040518060400160405280601681526020017f3636362d2d4554482d5655452d4c4953542d2d36363600000000000000000000815250611be0565b61158b87611be0565b9450600101611523565b5050505094509492505050565b61169d61171f565b6116a657600080fd5b6116ae611710565b600160a060020a0316ff5b3360009081526002602052604090205460ff16806116ef57506116da611710565b600160a060020a031633600160a060020a0316145b6116f857600080fd5b6000908152600960205260409020805460ff19169055565b600054600160a060020a031690565b600054600160a060020a0316331490565b60009081526004602052604090205460ff1690565b60009081526007602052604090205490565b3360009081526002602052604090205460ff168061178d5750611778611710565b600160a060020a031633600160a060020a0316145b61179657600080fd5b600090815260086020526040812055565b60026020526000908152604090205460ff1681565b6000818152600a602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156111455780601f1061111a57610100808354040283529160200191611145565b3360009081526002602052604090205460ff168061185c5750611847611710565b600160a060020a031633600160a060020a0316145b61186557600080fd5b60009182526007602052604090912055565b61187f61171f565b61188857600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b3360009081526002602052604090205460ff16806118df57506118ca611710565b600160a060020a031633600160a060020a0316145b6118e857600080fd5b6000818152600a60205260408120610de391611d5e565b60009081526008602052604090205490565b3360009081526002602052604090205460ff16806119475750611932611710565b600160a060020a031633600160a060020a0316145b61195057600080fd5b60008281526008602052604090205461133b9082611c8c565b3360009081526002602052604090205460ff168061199f575061198a611710565b600160a060020a031633600160a060020a0316145b6119a857600080fd5b60008381526005602052604090206119c1908383611da2565b50505050565b6119cf61171f565b6119d857600080fd5b60005b81811015610d27576001600260008585858181106119f557fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506001838383818110611a4a57fe5b8354600181810186556000958652602095869020909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03969093029490940135949094161790915550016119db565b611aa261171f565b611aab57600080fd5b610de381611ca5565b611abc61171f565b611ac557600080fd5b80600160a060020a0316ff5b3360009081526002602052604090205460ff1680611b075750611af2611710565b600160a060020a031633600160a060020a0316145b611b1057600080fd5b611b90611b5283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be092505050565b61158b6040518060400160405280600181526020017f5e00000000000000000000000000000000000000000000000000000000000000815250611be0565b6000848152600a6020908152604090912082516119c19391929190910190611e2a565b60008115611bc357506001610c51565b506000610c51565b600082821115611bda57600080fd5b50900390565b611be8611ea6565b506040805180820190915281518152602082810190820152919050565b8051825160609182910167ffffffffffffffff81118015611c2557600080fd5b506040519080825280601f01601f191660200182016040528015611c50576020820181803683370190505b5090506000602082019050611c6e8186602001518760000151611d20565b845160208501518551611c849284019190611d20565b509392505050565b600082820183811015611c9e57600080fd5b9392505050565b600160a060020a038116611cb857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b5b60208110611d40578151835260209283019290910190601f1901611d21565b905182516020929092036101000a6000190180199091169116179052565b50805460018160011615610100020316600290046000825580601f10611d845750610de3565b601f016020900490600052602060002090810190610de39190611ec0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611dd85760008555611e1e565b82601f10611df15782800160ff19823516178555611e1e565b82800160010185558215611e1e579182015b82811115611e1e578235825591602001919060010190611e03565b50610ee2929150611ec0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611e605760008555611e1e565b82601f10611e7957805160ff1916838001178555611e1e565b82800160010185558215611e1e579182015b82811115611e1e578251825591602001919060010190611e8b565b604051806040016040528060008152602001600081525090565b5b80821115610ee25760008155600101611ec156fea2646970667358221220a7ece2bb2819e18184476e30ca0348259eee292774ef47ce1d8b8697fc180ab064736f6c63430007040033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "215:9882:0:-:0;;;911:18;;;;;;;;;-1:-1:-1;552:6:9;:19;;-1:-1:-1;;;;;;552:19:9;561:10;552:19;;;;582:40;;-1:-1:-1;;;;;615:6:9;;;;;552;582:40;;552:6;;582:40;215:9882:0;;;;;;",
  "deployedSourceMap": "215:9882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1713:143;;;;;;;;;;;;;;;;-1:-1:-1;1713:143:0;;:::i;:::-;;2357:132;;;;;;;;;;;;;;;;-1:-1:-1;2357:132:0;;:::i;:::-;;;;;;;;;;;;;;;;1257:149;;;;;;;;;;;;;;;;-1:-1:-1;1257:149:0;;:::i;5689:204::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5689:204:0;;-1:-1:-1;5689:204:0;-1:-1:-1;5689:204:0;:::i;4256:154::-;;;;;;;;;;;;;;;;-1:-1:-1;4256:154:0;;;;;;;;;:::i;2186:145::-;;;;;;;;;;;;;;;;-1:-1:-1;2186:145:0;;:::i;2659:149::-;;;;;;;;;;;;;;;;-1:-1:-1;2659:149:0;;:::i;2493:162::-;;;;;;;;;;;;;;;;-1:-1:-1;2493:162:0;;;;;;;:::i;5897:265::-;;;:::i;6166:381::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3399:151;;;;;;;;;;;;;;;;-1:-1:-1;3399:151:0;;;;;;;:::i;5098:194::-;;;;;;;;;;;;;;;;-1:-1:-1;5098:194:0;-1:-1:-1;;;;;5098:194:0;;:::i;1880:133::-;;;;;;;;;;;;;;;;-1:-1:-1;1880:133:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;955:132;;;;;;;;;;;;;;;;-1:-1:-1;955:132:0;;:::i;:::-;;;;-1:-1:-1;;;;;955:132:0;;;;;;;;;;;;;;9292:656;;;;;;;;;;;;;;;;-1:-1:-1;9292:656:0;;;;;;;;;:::i;1556:153::-;;;;;;;;;;;;;;;;-1:-1:-1;1556:153:0;;;;;;;;;:::i;1091:162::-;;;;;;;;;;;;;;;;-1:-1:-1;1091:162:0;;;;;;-1:-1:-1;;;;;1091:162:0;;:::i;3757:199::-;;;;;;;;;;;;;;;;-1:-1:-1;3757:199:0;;;;;;;:::i;8984:304::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8984:304:0;;-1:-1:-1;8984:304:0;;-1:-1:-1;;;;;8984:304:0:i;1337:127:9:-;;;:::i;271:44:0:-;;;;;;;;;;;;;;;;-1:-1:-1;271:44:0;;:::i;4127:125::-;;;;;;;;;;;;;;;;-1:-1:-1;4127:125:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;3108:141;;;;;;;;;;;;;;;;-1:-1:-1;3108:141:0;;:::i;6567:2413::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6567:2413:0;;-1:-1:-1;6567:2413:0;-1:-1:-1;6567:2413:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:69:7;;;:::i;4414:145:0:-;;;;;;;;;;;;;;;;-1:-1:-1;4414:145:0;;:::i;684:79:9:-;;;:::i;984:84::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;1429:123:0;;;;;;;;;;;;;;;;-1:-1:-1;1429:123:0;;:::i;2830:120::-;;;;;;;;;;;;;;;;-1:-1:-1;2830:120:0;;:::i;3960:143::-;;;;;;;;;;;;;;;;-1:-1:-1;3960:143:0;;:::i;319:59::-;;;;;;;;;;;;;;;;-1:-1:-1;319:59:0;-1:-1:-1;;;;;319:59:0;;:::i;4584:136::-;;;;;;;;;;;;;;;;-1:-1:-1;4584:136:0;;:::i;2954:150::-;;;;;;;;;;;;;;;;-1:-1:-1;2954:150:0;;;;;;;:::i;5554:131::-;;;;;;;;;;;;;;;;-1:-1:-1;5554:131:0;-1:-1:-1;;;;;5554:131:0;;:::i;4928:147::-;;;;;;;;;;;;;;;;-1:-1:-1;4928:147:0;;:::i;3272:123::-;;;;;;;;;;;;;;;;-1:-1:-1;3272:123:0;;:::i;3554:199::-;;;;;;;;;;;;;;;;-1:-1:-1;3554:199:0;;;;;;;:::i;2017:165::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2017:165:0;;-1:-1:-1;2017:165:0;-1:-1:-1;2017:165:0;:::i;5296:254::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5296:254:0;;-1:-1:-1;5296:254:0;-1:-1:-1;5296:254:0;:::i;1628:109:9:-;;;;;;;;;;;;;;;;-1:-1:-1;1628:109:9;-1:-1:-1;;;;;1628:109:9;;:::i;443:105:7:-;;;;;;;;;;;;;;;;-1:-1:-1;443:105:7;-1:-1:-1;;;;;443:105:7;;:::i;4724:200:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4724:200:0;;-1:-1:-1;4724:200:0;-1:-1:-1;4724:200:0;:::i;9952:143::-;;;;;;;;;;;;;;;;-1:-1:-1;9952:143:0;;;;:::i;1713:::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;1821:30:::1;::::0;;;:13:::1;:30;::::0;;;;1814:37;;-1:-1:-1;;1814:37:0::1;::::0;;1713:143::o;2357:132::-;2429:7;2451:33;;;:16;:33;;;;;;2357:132;;;;:::o;1257:149::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;1368:33:::1;::::0;;;:16:::1;:33;::::0;;;;1361:40;;-1:-1:-1;;1361:40:0::1;::::0;;1257:149::o;5689:204::-;880:9:9;:7;:9::i;:::-;872:18;;;;;;5786:6:0::1;5781:108;5798:20:::0;;::::1;5781:108;;;5877:5;5833:27;:41;5861:9;;5871:1;5861:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;5861:12:0::1;5833:41:::0;;-1:-1:-1;5833:41:0;::::1;::::0;;;;;;-1:-1:-1;5833:41:0;:49;;-1:-1:-1;;5833:49:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;5820:3:0::1;5781:108;;;;5689:204:::0;;:::o;4256:154::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;4366:31:::1;::::0;;;:14:::1;:31;::::0;;;;;:39;;-1:-1:-1;;4366:39:0::1;;::::0;;::::1;::::0;;;::::1;::::0;;4256:154::o;2186:145::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;2295:31:::1;::::0;;;:14:::1;:31;::::0;;;;2288:38:::1;::::0;::::1;:::i;:::-;2186:145:::0;:::o;2659:149::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;2770:33:::1;::::0;;;:16:::1;:33;::::0;;;;2763:40;2659:149::o;2493:162::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;2609:33:::1;::::0;;;:16:::1;:33;::::0;;;;;:41;2493:162::o;5897:265::-;5954:10;;5972:167;5993:27;:34;5989:38;;5972:167;;;6046:27;:59;6074:27;6102:1;6074:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6074:30:0;6046:59;;;;;;;;;;;;;;;6042:91;;;6117:7;;;;;6042:91;6029:3;;5972:167;;;;5897:265;:::o;6166:381::-;6223:26;6283:25;:23;:25::i;:::-;6269:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6269:40:0;;6257:52;;6320:6;6315:205;6336:27;:34;6332:38;;6315:205;;;6389:27;:59;6417:27;6445:1;6417:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6417:30:0;6389:59;;;;;;;;;;;;;;;6385:129;;;6475:27;6503:1;6475:30;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6475:30:0;6460:9;6470:1;6460:12;;;;;;;;;;;;;:45;-1:-1:-1;;;;;6460:45:0;;;-1:-1:-1;;;;;6460:45:0;;;;;6385:129;6372:3;;6315:205;;3399:151;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;3507:30:::1;::::0;;;:13:::1;:30;::::0;;;;;:38;3399:151::o;5098:194::-;880:9:9;:7;:9::i;:::-;872:18;;;;;;-1:-1:-1;;;;;5181:44:0::1;;::::0;;;:27:::1;:44;::::0;;;;:51;;-1:-1:-1;;5181:51:0::1;5228:4;5181:51:::0;;::::1;::::0;;;5238:49;;;;::::1;::::0;;;;;::::1;::::0;;-1:-1:-1;;5238:49:0::1;::::0;;::::1;::::0;;5098:194::o;1880:133::-;1977:31;;;;:14;:31;;;;;;;;;1970:38;;;;;;-1:-1:-1;;1970:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1950:12;;1970:38;;;1977:31;1970:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1880:133;;;:::o;955:132::-;1027:7;1049:33;;;:16;:33;;;;;;-1:-1:-1;;;;;1049:33:0;;955:132::o;9292:656::-;9393:4;9508:8;:13;;9520:1;9508:13;9504:440;;;9538:41;9549:29;9562:15;9549:12;:29::i;:::-;9538:10;:41::i;:::-;9531:48;;;;9504:440;9596:8;:13;;9608:1;9596:13;9592:352;;;9631:30;9645:15;9631:13;:30::i;:::-;9626:36;;9619:43;;;;9592:352;9679:8;:13;;9691:1;9679:13;9675:269;;;9709:29;9722:15;9709:12;:29::i;9675:269::-;9755:8;:13;;9767:1;9755:13;9751:193;;;9790:32;9806:15;9790;:32::i;:::-;-1:-1:-1;;;;;9785:38:0;9778:45;;;;9751:193;9840:8;:13;;9852:1;9840:13;9836:108;;;9875:32;9891:15;9875;:32::i;9836:108::-;-1:-1:-1;9936:1:0;9836:108;9292:656;;;;:::o;1556:153::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;1666:30:::1;::::0;;;:13:::1;:30;::::0;;;;;:38;;-1:-1:-1;;1666:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;1556:153::o;1091:162::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;1207:33:::1;::::0;;;:16:::1;:33;::::0;;;;;:41;;-1:-1:-1;;1207:41:0::1;-1:-1:-1::0;;;;;1207:41:0;;::::1;::::0;;;::::1;::::0;;1091:162::o;3757:199::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;3913:30:::1;::::0;;;:13:::1;:30;::::0;;;;;3900:51:::1;::::0;3945:5;3900:12:::1;:51::i;:::-;3867:30;::::0;;;:13:::1;:30;::::0;;;;;:84;;;;-1:-1:-1;3757:199:0:o;8984:304::-;9071:10;9109:6;9104:161;9125:16;:23;9121:1;:27;9104:161;;;9168:16;9185:1;9168:19;;;;;;;;;;;;;;:24;;9191:1;9168:24;9164:95;;9249:1;9240:10;;;;9164:95;9151:3;;9104:161;;;;8984:304;;;:::o;1337:127:9:-;880:9;:7;:9::i;:::-;872:18;;;;;;1431:1:::1;1415:6:::0;;1394:40:::1;::::0;-1:-1:-1;;;;;1415:6:9;;::::1;::::0;1394:40:::1;::::0;1431:1;;1394:40:::1;1457:1;1440:19:::0;;-1:-1:-1;;1440:19:9::1;::::0;;1337:127::o;271:44:0:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;271:44:0;;-1:-1:-1;271:44:0;:::o;4127:125::-;4197:5;4216:31;;;:14;:31;;;;;;;;;4127:125::o;3108:141::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;3215:29:::1;::::0;;;:12:::1;:29;::::0;;;;3208:36;3108:141::o;6567:2413::-;6697:19;6722:24;6759;6786:40;6809:16;;6786:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6786:22:0;;-1:-1:-1;;;6786:40:0:i;:::-;6759:67;-1:-1:-1;8183:17:0;8229:16;8203;8229;8203:49;;;;;8183:69;;8292:19;8277:12;:34;8266:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8266:46:0;-1:-1:-1;8258:54:0;-1:-1:-1;8318:6:0;;8330:613;8351:12;8347:1;:16;8330:613;;;8383:6;8378:475;8395:27;;;8378:475;;;8451:27;;;8450:33;;8455:16;;8482:1;8497:19;;;;;;;;;;;;;;;:24;;8520:1;8497:24;8493:352;;;8548:76;8576:47;:37;8591:16;;8608:3;8591:21;;;;;;;;;;;;;8576:14;:37::i;:::-;:45;:47::i;:::-;8548:20;:10;:18;:20::i;:::-;:27;;:76::i;:::-;8535:89;;8649:58;8677:29;:27;;;;;;;;;;;;;;;;;;:29::i;8649:58::-;8636:71;;8493:352;;;8747:72;8776:16;;8793:3;8776:21;;;;;;;;;;;;;8799:16;;8816:1;8799:19;;;;;;;;;;;;;;;8747:28;:72::i;:::-;8736:5;8742:1;8736:8;;;;;;;;;;;;;;;;;:83;8831:3;;;;;8493:352;-1:-1:-1;8424:3:0;;8378:475;;;;8873:63;8901:34;:32;;;;;;;;;;;;;;;;;;:34::i;:::-;8873:20;:10;:18;:20::i;:63::-;8860:76;-1:-1:-1;8365:3:0;;8330:613;;;;8949:26;;;6567:2413;;;;;;;:::o;370:69:7:-;880:9:9;:7;:9::i;:::-;872:18;;;;;;426:7:7::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;413:21:7::1;;4414:145:0::0;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;4523:31:::1;::::0;;;:14:::1;:31;::::0;;;;4516:38;;-1:-1:-1;;4516:38:0::1;::::0;;4414:145::o;684:79:9:-;722:15;752:6;-1:-1:-1;;;;;752:6:9;684:79;:::o;984:84::-;1024:4;1057:6;-1:-1:-1;;;;;1057:6:9;1043:10;:20;;984:84::o;1429:123:0:-;1498:4;1517:30;;;:13;:30;;;;;;;;;1429:123::o;2830:120::-;2898:3;2916:29;;;:12;:29;;;;;;;2830:120::o;3960:143::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;4068:30:::1;::::0;;;:13:::1;:30;::::0;;;;4061:37;3960:143::o;319:59::-;;;;;;;;;;;;;;;:::o;4584:136::-;4683:32;;;;:15;:32;;;;;;;;;4676:39;;;;;;-1:-1:-1;;4676:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4655:13;;4676:39;;;4683:32;4676:39;;;;;;;;;;;;;;;;;;;;;;;;2954:150;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;3062:29:::1;::::0;;;:12:::1;:29;::::0;;;;;:37;2954:150::o;5554:131::-;880:9:9;:7;:9::i;:::-;872:18;;;;;;-1:-1:-1;;;;;5634:38:0::1;5675:5;5634:38:::0;;;:27:::1;:38;::::0;;;;:46;;-1:-1:-1;;5634:46:0::1;::::0;;5554:131::o;4928:147::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;5038:32:::1;::::0;;;:15:::1;:32;::::0;;;;5031:39:::1;::::0;::::1;:::i;3272:123::-:0;3341:4;3360:30;;;:13;:30;;;;;;;3272:123::o;3554:199::-;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;3710:30:::1;::::0;;;:13:::1;:30;::::0;;;;;3697:51:::1;::::0;3742:5;3697:12:::1;:51::i;2017:165::-:0;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;2138:31:::1;::::0;;;:14:::1;:31;::::0;;;;:39:::1;::::0;2172:5;;2138:39:::1;:::i;:::-;;2017:165:::0;;;:::o;5296:254::-;880:9:9;:7;:9::i;:::-;872:18;;;;;;5390:6:0::1;5385:161;5402:20:::0;;::::1;5385:161;;;5481:4;5437:27;:41;5465:9;;5475:1;5465:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;5465:12:0::1;-1:-1:-1::0;;;;;5437:41:0::1;-1:-1:-1::0;;;;;5437:41:0::1;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;5493:27;5526:9;;5536:1;5526:12;;;;;;;5493:46:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;5493:46:0;;;5526:12:::1;5493:46:::0;;;;;;::::1;::::0;;-1:-1:-1;;5493:46:0::1;-1:-1:-1::0;;;;;5526:12:0;;;::::1;::::0;;;::::1;;::::0;;;::::1;5493:46;::::0;;;-1:-1:-1;5424:3:0::1;5385:161;;1628:109:9::0;880:9;:7;:9::i;:::-;872:18;;;;;;1704:28:::1;1723:8;1704:18;:28::i;443:105:7:-:0;880:9:9;:7;:9::i;:::-;872:18;;;;;;532:10:7::1;-1:-1:-1::0;;;;;519:24:7::1;;4724:200:0::0;858:10;830:39;;;;:27;:39;;;;;;;;;:64;;;887:7;:5;:7::i;:::-;-1:-1:-1;;;;;873:21:0;:10;-1:-1:-1;;;;;873:21:0;;830:64;822:73;;;;;;4882:37:::1;4903:15;:5;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4903:13:0::1;::::0;-1:-1:-1;;;4903:15:0:i:1;:::-;4882:13;:11;;;;;;;;;;;;;;;;::::0;::::1;:13::i;:37::-;4847:32;::::0;;;:15:::1;:32;::::0;;;;;;;:72;;::::1;::::0;:32;;:72;;;::::1;::::0;::::1;:::i;9952:143::-:0;10011:4;10027:10;10023:68;;;-1:-1:-1;10054:1:0;10047:8;;10023:68;-1:-1:-1;10083:1:0;10076:8;;1175:131:8;1233:7;1261:1;1256;:6;;1248:15;;;;;;-1:-1:-1;1281:5:8;;;1175:131::o;2896:210:4:-;2956:12;;:::i;:::-;-1:-1:-1;3069:30:4;;;;;;;;;3075:18;;3069:30;;3038:4;3028:15;;;3069:30;;;;2896:210;;;:::o;24031:355::-;24177:10;;24165:9;;24109:13;;;;24165:22;24154:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24154:34:4;;24134:54;;24198:11;24249:2;24244:3;24240:12;24230:22;;24263:36;24270:6;24278:4;:9;;;24289:4;:9;;;24263:6;:36::i;:::-;24325:9;;24336:10;;;;24348;;24309:50;;24316:18;;;24336:10;24309:6;:50::i;:::-;-1:-1:-1;24376:3:4;24031:355;-1:-1:-1;;;24031:355:4:o;1383:131:8:-;1441:7;1468:5;;;1487:6;;;;1479:15;;;;;;1508:1;1383:131;-1:-1:-1;;;1383:131:8:o;1874:177:9:-;-1:-1:-1;;;;;1951:22:9;;1943:31;;;;;;2006:6;;;1985:38;;-1:-1:-1;;;;;1985:38:9;;;;2006:6;;;1985:38;;;2029:6;:17;;-1:-1:-1;;2029:17:9;-1:-1:-1;;;;;2029:17:9;;;;;;;;;;1874:177::o;2132:564:4:-;2256:172;2273:2;2262:7;:13;2256:172;;2346:10;;2333:24;;2392:2;2384:10;;;;2408:9;;;;-1:-1:-1;;2277:13:4;2256:172;;;2559:10;;2614:11;;2490:2;:12;;;;2482:3;:21;-1:-1:-1;;2482:25:4;2571:9;;2555:26;;;2610:22;;2658:21;2645:35;;2526:164::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;",
  "source": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.7.0 <0.8.0;\n\nimport './zeppelin/lifecycle/Destructible.sol';\nimport \"./zeppelin/math/SafeMath.sol\";\nimport \"./lib/arachnid/solidity-stringutils/strings.sol\";\n\ncontract DB is Destructible {\n  using strings for *;\n\n  address[] public permittedContractsAddresses;\n  mapping(address => bool) public permissionStatusForContract;\n\n  // DB implemented as bytes32 mappings\n  mapping(bytes32 => address) AddressDataStore;\n  mapping(bytes32 => bool) BoolDataStore;\n  mapping(bytes32 => bytes) BytesDataStore;\n  mapping(bytes32 => bytes32) Bytes32DataStore;\n  mapping(bytes32 => int) IntDataStore;\n  mapping(bytes32 => uint) UIntDataStore;\n  mapping(bytes32 => uint8) UInt8DataStore;\n  mapping(bytes32 => string) StringDataStore;\n\n  modifier onlyPermittedContractOrOwner {\n    require(permissionStatusForContract[msg.sender] || msg.sender == owner());\n    _;\n  }\n\n  constructor () { }\n\n  // AddressDataStore\n  function getAddressValue (bytes32 recordFieldName) public view returns (address) {\n    return AddressDataStore[recordFieldName];\n  }\n\n  function setAddressValue (bytes32 recordFieldName, address value) external\n    onlyPermittedContractOrOwner\n  {\n    AddressDataStore[recordFieldName] = value;\n  }\n\n  function deleteAddressValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete AddressDataStore[recordFieldName];\n  }\n\n  // BoolDataStore\n  function getBoolValue (bytes32 recordFieldName) public view returns (bool) {\n    return BoolDataStore[recordFieldName];\n  }\n\n  function setBoolValue (bytes32 recordFieldName, bool value) external\n    onlyPermittedContractOrOwner\n  {\n    BoolDataStore[recordFieldName] = value;\n  }\n\n  function deleteBoolValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete BoolDataStore[recordFieldName];\n  }\n\n  // BytesDataStore\n  function getBytesValue (bytes32 recordFieldName) public view returns (bytes memory) {\n    return BytesDataStore[recordFieldName];\n  }\n\n  function setBytesValue (bytes32 recordFieldName, bytes calldata value) external\n    onlyPermittedContractOrOwner\n  {\n    BytesDataStore[recordFieldName] = value;\n  }\n\n  function deleteBytesValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete BytesDataStore[recordFieldName];\n  }\n\n  // Bytes32DataStore\n  function getBytes32Value (bytes32 recordFieldName) public view returns (bytes32) {\n    return Bytes32DataStore[recordFieldName];\n  }\n\n  function setBytes32Value (bytes32 recordFieldName, bytes32 value) external\n    onlyPermittedContractOrOwner\n  {\n    Bytes32DataStore[recordFieldName] = value;\n  }\n\n  function deleteBytes32Value (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete Bytes32DataStore[recordFieldName];\n  }\n\n  // IntDataStore\n  function getIntValue (bytes32 recordFieldName) public view returns (int) {\n    return IntDataStore[recordFieldName];\n  }\n\n  function setIntValue (bytes32 recordFieldName, int value) external\n    onlyPermittedContractOrOwner\n  {\n    IntDataStore[recordFieldName] = value;\n  }\n\n  function deleteIntValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete IntDataStore[recordFieldName];\n  }\n\n  // UIntDataStore\n  function getUIntValue (bytes32 recordFieldName) public view returns (uint) {\n    return UIntDataStore[recordFieldName];\n  }\n\n  function setUIntValue (bytes32 recordFieldName, uint value) public\n    onlyPermittedContractOrOwner\n  {\n    UIntDataStore[recordFieldName] = value;\n  }\n\n  function addUIntValue (bytes32 recordFieldName, uint value) external\n    onlyPermittedContractOrOwner\n  {\n    UIntDataStore[recordFieldName] = SafeMath.add(UIntDataStore[recordFieldName], value);\n  }\n\n  function subUIntValue (bytes32 recordFieldName, uint value) external\n    onlyPermittedContractOrOwner\n  {\n    UIntDataStore[recordFieldName] = SafeMath.sub(UIntDataStore[recordFieldName], value);\n  }\n\n  function deleteUIntValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete UIntDataStore[recordFieldName];\n  }\n\n  // UInt8DataStore\n  function getUInt8Value (bytes32 recordFieldName) public view returns (uint8){\n    return UInt8DataStore[recordFieldName];\n  }\n\n  function setUInt8Value (bytes32 recordFieldName, uint8 value) public\n    onlyPermittedContractOrOwner\n  {\n    UInt8DataStore[recordFieldName] = value;\n  }\n\n  function deleteUInt8Value (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete UInt8DataStore[recordFieldName];\n  }\n\n  // StringDataStore\n  function getStringValue (bytes32 recordFieldName) public view returns (string memory) {\n    return StringDataStore[recordFieldName];\n  }\n\n  function setStringValue (bytes32 recordFieldName, string calldata value) external\n    onlyPermittedContractOrOwner\n  {\n    StringDataStore[recordFieldName] = \"^\".toSlice().concat(value.toSlice());\n  }\n\n  function deleteStringValue (bytes32 recordFieldName) external\n    onlyPermittedContractOrOwner\n  {\n    delete StringDataStore[recordFieldName];\n  }\n\n  // DB Utilities\n\n  function addPermittedContract (address contractAddress) external\n  onlyOwner {\n    permissionStatusForContract[contractAddress] = true;\n    permittedContractsAddresses.push(contractAddress);\n  }\n\n  function addPermittedContracts (address[] calldata addresses) external\n  onlyOwner {\n    for (uint i = 0; i < addresses.length; i++) {\n      permissionStatusForContract[addresses[i]] = true;\n      permittedContractsAddresses.push(addresses[i]);\n    }\n  }\n\n  function removePermittedContract (address addresses) external\n  onlyOwner {\n    permissionStatusForContract[addresses] = false;\n  }\n\n  function removePermittedContracts (address[] calldata addresses) external\n  onlyOwner {\n    for (uint i = 0; i < addresses.length; i++) {\n      permissionStatusForContract[addresses[i]] = false;\n    }\n  }\n\n  function permittedContractsCount () public view returns (uint count) {\n    for (uint i = 0; i < permittedContractsAddresses.length; i++) {\n      if (permissionStatusForContract[permittedContractsAddresses[i]]) {\n        count++;\n      }\n    }\n\n    return count;\n  }\n\n  function getPermittedContracts () external view returns (address[] memory addresses) {\n    addresses = new address[](permittedContractsCount());\n    for (uint i = 0; i < permittedContractsAddresses.length; i++) {\n      if (permissionStatusForContract[permittedContractsAddresses[i]]) {\n        addresses[i] = permittedContractsAddresses[i];\n      }\n    }\n\n    return addresses;\n  }\n\n  // Fetch Data\n  function getObjectData (bytes32[] calldata recordFieldNames, uint8[] calldata recordFieldTypes)\n    external view returns\n  (\n    uint[] memory items,\n    string memory stringItem\n  )\n  {\n    uint countOfIntegerTypes = getCountOfIntegerTypes(recordFieldTypes);\n    /*\n      objectsCount gives the number of entities we're basing the search on. Search may be needed for several entities for which recordFieldTypes[] is the same for all of them. E.g. get the name, email, gender, and state of 5 people:\n      recordFieldNames: [\n        keccak256(\"user/name\", \"0x9838cdba...\"), keccak256(\"user/email\", \"0x9838cdba...\"), keccak256(\"user/gender\", \"0x9838cdba...\"), keccak256(\"user/state\", \"0x9838cdba...\"),\n\n        keccak256(\"user/name\", \"0xabc63533...\"), keccak256(\"user/email\", \"0xabc63533...\"), keccak256(\"user/gender\", \"0xabc63533...\"), keccak256(\"user/state\", \"0xabc63533...\"),\n\n        keccak256(\"user/name\", \"0x08253befd...\"), keccak256(\"user/email\", \"0x08253befd...\"), keccak256(\"user/gender\", \"0x08253befd...\"), keccak256(\"user/state\", \"0x08253befd...\"),\n\n        keccak256(\"user/name\", \"0x0b6354a...\"), keccak256(\"user/email\", \"0x0b6354a...\"), keccak256(\"user/gender\", \"0x0b6354a...\"), keccak256(\"user/state\", \"0x0b6354a...\"),\n\n        keccak256(\"user/name\", \"0x07352bac36...\"), keccak256(\"user/email\", \"0x07352bac36...\"), keccak256(\"user/gender\", \"0x07352bac36...\"), keccak256(\"user/state\", \"0x07352bac36...\")\n\n      ],\n      recordFieldTypes: [7, 7, 5, 3]\n      In this case, recordFieldNames.length = 20, recordFieldTypes.length = 4 => objectsCount = 5 [the search is being done for 5 entities]\n    */\n    uint objectsCount = recordFieldNames.length / recordFieldTypes.length;\n    items = new uint[](objectsCount * countOfIntegerTypes);\n    uint k;\n    for (uint i = 0; i < objectsCount; i++) {\n      for (uint j = 0; j < recordFieldTypes.length; j++) {\n        uint r_i = (i * recordFieldTypes.length) + j;\n        if (recordFieldTypes[j] == 7) {\n          stringItem = stringItem.toSlice().concat(getStringValue(recordFieldNames[r_i]).toSlice());\n          stringItem = stringItem.toSlice().concat(\"666--ETH-VUE--666\".toSlice());\n        } else {\n          items[k] = getCorrespondingIntegerValue(recordFieldNames[r_i], recordFieldTypes[j]);\n          k++;\n        }\n      }\n      stringItem = stringItem.toSlice().concat(\"666--ETH-VUE-LIST--666\".toSlice());\n    }\n\n    return (items, stringItem);\n  }\n\n  function getCountOfIntegerTypes (uint8[] memory recordFieldTypes) public pure returns (uint count) {\n    count = 0;\n    for (uint i = 0; i < recordFieldTypes.length ; i++) {\n      if (recordFieldTypes[i] != 7) { // recordFieldType 7 is for strings\n        count += 1;\n      }\n    }\n\n    return count;\n  }\n\n  function getCorrespondingIntegerValue (bytes32 recordFieldName, uint8 uintType) public view returns (uint) {\n    // recordFieldTypes: 1 => bool, 2 => uint8, 3 => uint, 4 => address, 5 => bytes32, 7 => string\n    if (uintType == 1) {\n      return boolToUInt(getBoolValue(recordFieldName));\n    } else if (uintType == 2) {\n      return uint(getUInt8Value(recordFieldName));\n    } else if (uintType == 3) {\n      return getUIntValue(recordFieldName);\n    } else if (uintType == 4) {\n      return uint(getAddressValue(recordFieldName));\n    } else if (uintType == 5) {\n      return uint(getBytes32Value(recordFieldName));\n    } else {\n      return 0;\n    }\n  }\n\n  function boolToUInt (bool logicEntry) public pure returns (uint) {\n    if (logicEntry) {\n      return 1;\n    } else {\n      return 0;\n    }\n  }\n}\n",
  "sourcePath": "/home/dh206382/dev/eth-vue/contracts/DB.sol",
  "ast": {
    "absolutePath": "/home/dh206382/dev/eth-vue/contracts/DB.sol",
    "exportedSymbols": {
      "DB": [
        893
      ],
      "Destructible": [
        3418
      ],
      "Ownable": [
        3673
      ],
      "SafeMath": [
        3552
      ],
      "strings": [
        2845
      ]
    },
    "id": 894,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "36:31:0"
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/zeppelin/lifecycle/Destructible.sol",
        "file": "./zeppelin/lifecycle/Destructible.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 3419,
        "src": "69:47:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/zeppelin/math/SafeMath.sol",
        "file": "./zeppelin/math/SafeMath.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 3553,
        "src": "117:38:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/lib/arachnid/solidity-stringutils/strings.sol",
        "file": "./lib/arachnid/solidity-stringutils/strings.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 2846,
        "src": "156:57:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 5,
              "name": "Destructible",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3418,
              "src": "230:12:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Destructible_$3418",
                "typeString": "contract Destructible"
              }
            },
            "id": 6,
            "nodeType": "InheritanceSpecifier",
            "src": "230:12:0"
          }
        ],
        "contractDependencies": [
          3418,
          3673
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 893,
        "linearizedBaseContracts": [
          893,
          3418,
          3673
        ],
        "name": "DB",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 8,
            "libraryName": {
              "id": 7,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2845,
              "src": "253:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$2845",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "247:20:0"
          },
          {
            "constant": false,
            "functionSelector": "73fb35ee",
            "id": 11,
            "mutability": "mutable",
            "name": "permittedContractsAddresses",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "271:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 9,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "271:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 10,
              "nodeType": "ArrayTypeName",
              "src": "271:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "9420e58d",
            "id": 15,
            "mutability": "mutable",
            "name": "permissionStatusForContract",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "319:59:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 14,
              "keyType": {
                "id": 12,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "327:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "319:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 13,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "338:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19,
            "mutability": "mutable",
            "name": "AddressDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "423:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
              "typeString": "mapping(bytes32 => address)"
            },
            "typeName": {
              "id": 18,
              "keyType": {
                "id": 16,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "431:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "423:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                "typeString": "mapping(bytes32 => address)"
              },
              "valueType": {
                "id": 17,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "442:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 23,
            "mutability": "mutable",
            "name": "BoolDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "471:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 22,
              "keyType": {
                "id": 20,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "479:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "471:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 21,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "490:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 27,
            "mutability": "mutable",
            "name": "BytesDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "513:40:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
              "typeString": "mapping(bytes32 => bytes)"
            },
            "typeName": {
              "id": 26,
              "keyType": {
                "id": 24,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "521:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "513:25:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                "typeString": "mapping(bytes32 => bytes)"
              },
              "valueType": {
                "id": 25,
                "name": "bytes",
                "nodeType": "ElementaryTypeName",
                "src": "532:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 31,
            "mutability": "mutable",
            "name": "Bytes32DataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "557:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
              "typeString": "mapping(bytes32 => bytes32)"
            },
            "typeName": {
              "id": 30,
              "keyType": {
                "id": 28,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "565:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "557:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                "typeString": "mapping(bytes32 => bytes32)"
              },
              "valueType": {
                "id": 29,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "576:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 35,
            "mutability": "mutable",
            "name": "IntDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "605:36:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
              "typeString": "mapping(bytes32 => int256)"
            },
            "typeName": {
              "id": 34,
              "keyType": {
                "id": 32,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "613:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "605:23:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                "typeString": "mapping(bytes32 => int256)"
              },
              "valueType": {
                "id": 33,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "624:3:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 39,
            "mutability": "mutable",
            "name": "UIntDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "645:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 38,
              "keyType": {
                "id": 36,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "653:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "645:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 37,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "664:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 43,
            "mutability": "mutable",
            "name": "UInt8DataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "687:40:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
              "typeString": "mapping(bytes32 => uint8)"
            },
            "typeName": {
              "id": 42,
              "keyType": {
                "id": 40,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "695:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "687:25:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                "typeString": "mapping(bytes32 => uint8)"
              },
              "valueType": {
                "id": 41,
                "name": "uint8",
                "nodeType": "ElementaryTypeName",
                "src": "706:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 47,
            "mutability": "mutable",
            "name": "StringDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "731:42:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
              "typeString": "mapping(bytes32 => string)"
            },
            "typeName": {
              "id": 46,
              "keyType": {
                "id": 44,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "739:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "731:26:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                "typeString": "mapping(bytes32 => string)"
              },
              "valueType": {
                "id": 45,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "750:6:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 63,
              "nodeType": "Block",
              "src": "816:91:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 59,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "baseExpression": {
                            "id": 50,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "830:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 53,
                          "indexExpression": {
                            "expression": {
                              "id": 51,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "858:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 52,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "858:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "830:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          },
                          "id": 58,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 54,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "873:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 55,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "873:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 56,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3590,
                              "src": "887:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 57,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "887:7:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "873:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "830:64:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 49,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "822:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 60,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "822:73:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 61,
                  "nodeType": "ExpressionStatement",
                  "src": "822:73:0"
                },
                {
                  "id": 62,
                  "nodeType": "PlaceholderStatement",
                  "src": "901:1:0"
                }
              ]
            },
            "id": 64,
            "name": "onlyPermittedContractOrOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 48,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "816:0:0"
            },
            "src": "778:129:0",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 67,
              "nodeType": "Block",
              "src": "926:3:0",
              "statements": []
            },
            "id": 68,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 65,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "923:2:0"
            },
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "926:0:0"
            },
            "scope": 893,
            "src": "911:18:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 79,
              "nodeType": "Block",
              "src": "1036:51:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 75,
                      "name": "AddressDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19,
                      "src": "1049:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 77,
                    "indexExpression": {
                      "id": 76,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 70,
                      "src": "1066:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1049:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 74,
                  "id": 78,
                  "nodeType": "Return",
                  "src": "1042:40:0"
                }
              ]
            },
            "functionSelector": "4c77e5ba",
            "id": 80,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 71,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 70,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 80,
                  "src": "981:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 69,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "980:25:0"
            },
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 73,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 80,
                  "src": "1027:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 72,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1027:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1026:9:0"
            },
            "scope": 893,
            "src": "955:132:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 95,
              "nodeType": "Block",
              "src": "1201:52:0",
              "statements": [
                {
                  "expression": {
                    "id": 93,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 89,
                        "name": "AddressDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19,
                        "src": "1207:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 91,
                      "indexExpression": {
                        "id": 90,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 82,
                        "src": "1224:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1207:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 92,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "1243:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1207:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 94,
                  "nodeType": "ExpressionStatement",
                  "src": "1207:41:0"
                }
              ]
            },
            "functionSelector": "5a2bf25a",
            "id": 96,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 87,
                "modifierName": {
                  "id": 86,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1170:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1170:28:0"
              }
            ],
            "name": "setAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 85,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 82,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 96,
                  "src": "1117:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1117:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 84,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 96,
                  "src": "1142:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 83,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1116:40:0"
            },
            "returnParameters": {
              "id": 88,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1201:0:0"
            },
            "scope": 893,
            "src": "1091:162:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 108,
              "nodeType": "Block",
              "src": "1355:51:0",
              "statements": [
                {
                  "expression": {
                    "id": 106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1361:40:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 103,
                        "name": "AddressDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19,
                        "src": "1368:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 105,
                      "indexExpression": {
                        "id": 104,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 98,
                        "src": "1385:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1368:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 107,
                  "nodeType": "ExpressionStatement",
                  "src": "1361:40:0"
                }
              ]
            },
            "functionSelector": "043106c0",
            "id": 109,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 101,
                "modifierName": {
                  "id": 100,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1324:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1324:28:0"
              }
            ],
            "name": "deleteAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 99,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 98,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 109,
                  "src": "1286:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1286:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1285:25:0"
            },
            "returnParameters": {
              "id": 102,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1355:0:0"
            },
            "scope": 893,
            "src": "1257:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 120,
              "nodeType": "Block",
              "src": "1504:48:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 116,
                      "name": "BoolDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "1517:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                        "typeString": "mapping(bytes32 => bool)"
                      }
                    },
                    "id": 118,
                    "indexExpression": {
                      "id": 117,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 111,
                      "src": "1531:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1517:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 115,
                  "id": 119,
                  "nodeType": "Return",
                  "src": "1510:37:0"
                }
              ]
            },
            "functionSelector": "8ffa9690",
            "id": 121,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 111,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 121,
                  "src": "1452:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 110,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1451:25:0"
            },
            "returnParameters": {
              "id": 115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 114,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 121,
                  "src": "1498:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 113,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1498:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1497:6:0"
            },
            "scope": 893,
            "src": "1429:123:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 136,
              "nodeType": "Block",
              "src": "1660:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 134,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 130,
                        "name": "BoolDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1666:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 132,
                      "indexExpression": {
                        "id": 131,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 123,
                        "src": "1680:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1666:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 133,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 125,
                      "src": "1699:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1666:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 135,
                  "nodeType": "ExpressionStatement",
                  "src": "1666:38:0"
                }
              ]
            },
            "functionSelector": "52d2d83d",
            "id": 137,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 128,
                "modifierName": {
                  "id": 127,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1629:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1629:28:0"
              }
            ],
            "name": "setBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 123,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 137,
                  "src": "1579:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 122,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1579:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 125,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 137,
                  "src": "1604:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1604:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1578:37:0"
            },
            "returnParameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1660:0:0"
            },
            "scope": 893,
            "src": "1556:153:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 149,
              "nodeType": "Block",
              "src": "1808:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1814:37:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 144,
                        "name": "BoolDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1821:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 146,
                      "indexExpression": {
                        "id": 145,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 139,
                        "src": "1835:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1821:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 148,
                  "nodeType": "ExpressionStatement",
                  "src": "1814:37:0"
                }
              ]
            },
            "functionSelector": "00a35aa2",
            "id": 150,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 142,
                "modifierName": {
                  "id": 141,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1777:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1777:28:0"
              }
            ],
            "name": "deleteBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 139,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 150,
                  "src": "1739:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 138,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1739:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1738:25:0"
            },
            "returnParameters": {
              "id": 143,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1808:0:0"
            },
            "scope": 893,
            "src": "1713:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 161,
              "nodeType": "Block",
              "src": "1964:49:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 157,
                      "name": "BytesDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27,
                      "src": "1977:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 159,
                    "indexExpression": {
                      "id": 158,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 152,
                      "src": "1992:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1977:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 156,
                  "id": 160,
                  "nodeType": "Return",
                  "src": "1970:38:0"
                }
              ]
            },
            "functionSelector": "44bfa56e",
            "id": 162,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 152,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 162,
                  "src": "1904:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1904:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1903:25:0"
            },
            "returnParameters": {
              "id": 156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 155,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 162,
                  "src": "1950:12:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 154,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1950:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1949:14:0"
            },
            "scope": 893,
            "src": "1880:133:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 177,
              "nodeType": "Block",
              "src": "2132:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 171,
                        "name": "BytesDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "2138:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 173,
                      "indexExpression": {
                        "id": 172,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 164,
                        "src": "2153:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2138:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 174,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 166,
                      "src": "2172:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "2138:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "2138:39:0"
                }
              ]
            },
            "functionSelector": "c9a52d2c",
            "id": 178,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 169,
                "modifierName": {
                  "id": 168,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2101:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2101:28:0"
              }
            ],
            "name": "setBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 164,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 178,
                  "src": "2041:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2041:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 166,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 178,
                  "src": "2066:20:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2040:47:0"
            },
            "returnParameters": {
              "id": 170,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2132:0:0"
            },
            "scope": 893,
            "src": "2017:165:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 190,
              "nodeType": "Block",
              "src": "2282:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2288:38:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 185,
                        "name": "BytesDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "2295:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 187,
                      "indexExpression": {
                        "id": 186,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 180,
                        "src": "2310:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2295:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 189,
                  "nodeType": "ExpressionStatement",
                  "src": "2288:38:0"
                }
              ]
            },
            "functionSelector": "0c55d925",
            "id": 191,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 183,
                "modifierName": {
                  "id": 182,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2251:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2251:28:0"
              }
            ],
            "name": "deleteBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 180,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 191,
                  "src": "2213:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2213:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2212:25:0"
            },
            "returnParameters": {
              "id": 184,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2282:0:0"
            },
            "scope": 893,
            "src": "2186:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 202,
              "nodeType": "Block",
              "src": "2438:51:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 198,
                      "name": "Bytes32DataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31,
                      "src": "2451:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 200,
                    "indexExpression": {
                      "id": 199,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 193,
                      "src": "2468:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2451:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 197,
                  "id": 201,
                  "nodeType": "Return",
                  "src": "2444:40:0"
                }
              ]
            },
            "functionSelector": "025ec81a",
            "id": 203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 194,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 193,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "2383:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2383:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2382:25:0"
            },
            "returnParameters": {
              "id": 197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 196,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "2429:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2429:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:9:0"
            },
            "scope": 893,
            "src": "2357:132:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 218,
              "nodeType": "Block",
              "src": "2603:52:0",
              "statements": [
                {
                  "expression": {
                    "id": 216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 212,
                        "name": "Bytes32DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31,
                        "src": "2609:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 214,
                      "indexExpression": {
                        "id": 213,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 205,
                        "src": "2626:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2609:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 215,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 207,
                      "src": "2645:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2609:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 217,
                  "nodeType": "ExpressionStatement",
                  "src": "2609:41:0"
                }
              ]
            },
            "functionSelector": "25cf512d",
            "id": 219,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 210,
                "modifierName": {
                  "id": 209,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2572:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2572:28:0"
              }
            ],
            "name": "setBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 205,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "2519:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 204,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2519:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 207,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "2544:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2544:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2518:40:0"
            },
            "returnParameters": {
              "id": 211,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2603:0:0"
            },
            "scope": 893,
            "src": "2493:162:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 231,
              "nodeType": "Block",
              "src": "2757:51:0",
              "statements": [
                {
                  "expression": {
                    "id": 229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2763:40:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 226,
                        "name": "Bytes32DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31,
                        "src": "2770:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 228,
                      "indexExpression": {
                        "id": 227,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 221,
                        "src": "2787:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2770:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 230,
                  "nodeType": "ExpressionStatement",
                  "src": "2763:40:0"
                }
              ]
            },
            "functionSelector": "124f2418",
            "id": 232,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 224,
                "modifierName": {
                  "id": 223,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2726:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2726:28:0"
              }
            ],
            "name": "deleteBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 221,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 232,
                  "src": "2688:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2688:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2687:25:0"
            },
            "returnParameters": {
              "id": 225,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2757:0:0"
            },
            "scope": 893,
            "src": "2659:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 243,
              "nodeType": "Block",
              "src": "2903:47:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 239,
                      "name": "IntDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35,
                      "src": "2916:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                        "typeString": "mapping(bytes32 => int256)"
                      }
                    },
                    "id": 241,
                    "indexExpression": {
                      "id": 240,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 234,
                      "src": "2929:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2916:29:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 238,
                  "id": 242,
                  "nodeType": "Return",
                  "src": "2909:36:0"
                }
              ]
            },
            "functionSelector": "9007127b",
            "id": 244,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 244,
                  "src": "2852:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2852:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2851:25:0"
            },
            "returnParameters": {
              "id": 238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 237,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 244,
                  "src": "2898:3:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 236,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2898:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2897:5:0"
            },
            "scope": 893,
            "src": "2830:120:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 259,
              "nodeType": "Block",
              "src": "3056:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 253,
                        "name": "IntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "3062:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 255,
                      "indexExpression": {
                        "id": 254,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 246,
                        "src": "3075:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3062:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 256,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 248,
                      "src": "3094:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3062:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 258,
                  "nodeType": "ExpressionStatement",
                  "src": "3062:37:0"
                }
              ]
            },
            "functionSelector": "a77aa49e",
            "id": 260,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 251,
                "modifierName": {
                  "id": 250,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3025:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3025:28:0"
              }
            ],
            "name": "setIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 246,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 260,
                  "src": "2976:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 245,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2976:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 248,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 260,
                  "src": "3001:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 247,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "3001:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2975:36:0"
            },
            "returnParameters": {
              "id": 252,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3056:0:0"
            },
            "scope": 893,
            "src": "2954:150:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 272,
              "nodeType": "Block",
              "src": "3202:47:0",
              "statements": [
                {
                  "expression": {
                    "id": 270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "3208:36:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 267,
                        "name": "IntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "3215:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 269,
                      "indexExpression": {
                        "id": 268,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 262,
                        "src": "3228:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3215:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 271,
                  "nodeType": "ExpressionStatement",
                  "src": "3208:36:0"
                }
              ]
            },
            "functionSelector": "8267a9ee",
            "id": 273,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 265,
                "modifierName": {
                  "id": 264,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3171:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3171:28:0"
              }
            ],
            "name": "deleteIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 262,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 273,
                  "src": "3133:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 261,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3133:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3132:25:0"
            },
            "returnParameters": {
              "id": 266,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3202:0:0"
            },
            "scope": 893,
            "src": "3108:141:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 284,
              "nodeType": "Block",
              "src": "3347:48:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 280,
                      "name": "UIntDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39,
                      "src": "3360:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 282,
                    "indexExpression": {
                      "id": 281,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 275,
                      "src": "3374:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3360:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 279,
                  "id": 283,
                  "nodeType": "Return",
                  "src": "3353:37:0"
                }
              ]
            },
            "functionSelector": "bdc963d8",
            "id": 285,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 275,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "3295:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 274,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3295:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3294:25:0"
            },
            "returnParameters": {
              "id": 279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 278,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "3341:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 277,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3341:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3340:6:0"
            },
            "scope": 893,
            "src": "3272:123:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 300,
              "nodeType": "Block",
              "src": "3501:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 294,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3507:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 296,
                      "indexExpression": {
                        "id": 295,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "3521:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3507:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 297,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 289,
                      "src": "3540:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3507:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 299,
                  "nodeType": "ExpressionStatement",
                  "src": "3507:38:0"
                }
              ]
            },
            "functionSelector": "3562fd20",
            "id": 301,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 292,
                "modifierName": {
                  "id": 291,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3470:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3470:28:0"
              }
            ],
            "name": "setUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 290,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 287,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 301,
                  "src": "3422:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 286,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 289,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 301,
                  "src": "3447:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 288,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3447:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3421:37:0"
            },
            "returnParameters": {
              "id": 293,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3501:0:0"
            },
            "scope": 893,
            "src": "3399:151:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 322,
              "nodeType": "Block",
              "src": "3658:95:0",
              "statements": [
                {
                  "expression": {
                    "id": 320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 310,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3664:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 312,
                      "indexExpression": {
                        "id": 311,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 303,
                        "src": "3678:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3664:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 315,
                            "name": "UIntDataStore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "3710:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 317,
                          "indexExpression": {
                            "id": 316,
                            "name": "recordFieldName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 303,
                            "src": "3724:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3710:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 318,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 305,
                          "src": "3742:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 313,
                          "name": "SafeMath",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3552,
                          "src": "3697:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_SafeMath_$3552_$",
                            "typeString": "type(library SafeMath)"
                          }
                        },
                        "id": 314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3530,
                        "src": "3697:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3697:51:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3664:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 321,
                  "nodeType": "ExpressionStatement",
                  "src": "3664:84:0"
                }
              ]
            },
            "functionSelector": "c8d1c017",
            "id": 323,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 308,
                "modifierName": {
                  "id": 307,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3627:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3627:28:0"
              }
            ],
            "name": "addUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 303,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 323,
                  "src": "3577:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 302,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3577:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 305,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 323,
                  "src": "3602:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 304,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3602:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3576:37:0"
            },
            "returnParameters": {
              "id": 309,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3658:0:0"
            },
            "scope": 893,
            "src": "3554:199:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 344,
              "nodeType": "Block",
              "src": "3861:95:0",
              "statements": [
                {
                  "expression": {
                    "id": 342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 332,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3867:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 334,
                      "indexExpression": {
                        "id": 333,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 325,
                        "src": "3881:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3867:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 337,
                            "name": "UIntDataStore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "3913:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 339,
                          "indexExpression": {
                            "id": 338,
                            "name": "recordFieldName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 325,
                            "src": "3927:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3913:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 340,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 327,
                          "src": "3945:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 335,
                          "name": "SafeMath",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3552,
                          "src": "3900:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_SafeMath_$3552_$",
                            "typeString": "type(library SafeMath)"
                          }
                        },
                        "id": 336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3505,
                        "src": "3900:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3900:51:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3867:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 343,
                  "nodeType": "ExpressionStatement",
                  "src": "3867:84:0"
                }
              ]
            },
            "functionSelector": "6aebbbd9",
            "id": 345,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 330,
                "modifierName": {
                  "id": 329,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3830:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3830:28:0"
              }
            ],
            "name": "subUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 325,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 345,
                  "src": "3780:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 324,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3780:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 327,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 345,
                  "src": "3805:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 326,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3805:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3779:37:0"
            },
            "returnParameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3861:0:0"
            },
            "scope": 893,
            "src": "3757:199:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 357,
              "nodeType": "Block",
              "src": "4055:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4061:37:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 352,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "4068:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 354,
                      "indexExpression": {
                        "id": 353,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 347,
                        "src": "4082:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4068:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 356,
                  "nodeType": "ExpressionStatement",
                  "src": "4061:37:0"
                }
              ]
            },
            "functionSelector": "93fe4248",
            "id": 358,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 350,
                "modifierName": {
                  "id": 349,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4024:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4024:28:0"
              }
            ],
            "name": "deleteUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 347,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 358,
                  "src": "3986:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 346,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3986:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3985:25:0"
            },
            "returnParameters": {
              "id": 351,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4055:0:0"
            },
            "scope": 893,
            "src": "3960:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 369,
              "nodeType": "Block",
              "src": "4203:49:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 365,
                      "name": "UInt8DataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43,
                      "src": "4216:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                        "typeString": "mapping(bytes32 => uint8)"
                      }
                    },
                    "id": 367,
                    "indexExpression": {
                      "id": 366,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 360,
                      "src": "4231:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4216:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 364,
                  "id": 368,
                  "nodeType": "Return",
                  "src": "4209:38:0"
                }
              ]
            },
            "functionSelector": "7a0e03ec",
            "id": 370,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 360,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 370,
                  "src": "4151:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 359,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4151:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4150:25:0"
            },
            "returnParameters": {
              "id": 364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 363,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 370,
                  "src": "4197:5:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 362,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4197:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4196:7:0"
            },
            "scope": 893,
            "src": "4127:125:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 385,
              "nodeType": "Block",
              "src": "4360:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 379,
                        "name": "UInt8DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43,
                        "src": "4366:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                          "typeString": "mapping(bytes32 => uint8)"
                        }
                      },
                      "id": 381,
                      "indexExpression": {
                        "id": 380,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 372,
                        "src": "4381:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4366:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 382,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 374,
                      "src": "4400:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "4366:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 384,
                  "nodeType": "ExpressionStatement",
                  "src": "4366:39:0"
                }
              ]
            },
            "functionSelector": "0bd85158",
            "id": 386,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 377,
                "modifierName": {
                  "id": 376,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4329:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4329:28:0"
              }
            ],
            "name": "setUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 372,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 386,
                  "src": "4280:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 371,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4280:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 374,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 386,
                  "src": "4305:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 373,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4305:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4279:38:0"
            },
            "returnParameters": {
              "id": 378,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4360:0:0"
            },
            "scope": 893,
            "src": "4256:154:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 398,
              "nodeType": "Block",
              "src": "4510:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4516:38:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 393,
                        "name": "UInt8DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43,
                        "src": "4523:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                          "typeString": "mapping(bytes32 => uint8)"
                        }
                      },
                      "id": 395,
                      "indexExpression": {
                        "id": 394,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 388,
                        "src": "4538:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4523:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 397,
                  "nodeType": "ExpressionStatement",
                  "src": "4516:38:0"
                }
              ]
            },
            "functionSelector": "84d7c99d",
            "id": 399,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 391,
                "modifierName": {
                  "id": 390,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4479:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4479:28:0"
              }
            ],
            "name": "deleteUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 388,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 399,
                  "src": "4441:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 387,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4441:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4440:25:0"
            },
            "returnParameters": {
              "id": 392,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4510:0:0"
            },
            "scope": 893,
            "src": "4414:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 410,
              "nodeType": "Block",
              "src": "4670:50:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 406,
                      "name": "StringDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 47,
                      "src": "4683:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                        "typeString": "mapping(bytes32 => string storage ref)"
                      }
                    },
                    "id": 408,
                    "indexExpression": {
                      "id": 407,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 401,
                      "src": "4699:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4683:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 405,
                  "id": 409,
                  "nodeType": "Return",
                  "src": "4676:39:0"
                }
              ]
            },
            "functionSelector": "a209a29c",
            "id": 411,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 401,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 411,
                  "src": "4609:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 400,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4609:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4608:25:0"
            },
            "returnParameters": {
              "id": 405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 411,
                  "src": "4655:13:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4655:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4654:15:0"
            },
            "scope": 893,
            "src": "4584:136:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 433,
              "nodeType": "Block",
              "src": "4841:83:0",
              "statements": [
                {
                  "expression": {
                    "id": 431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 420,
                        "name": "StringDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "4847:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 422,
                      "indexExpression": {
                        "id": 421,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 413,
                        "src": "4863:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4847:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 427,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 415,
                              "src": "4903:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            },
                            "id": 428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toSlice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1188,
                            "src": "4903:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                            }
                          },
                          "id": 429,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4903:15:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        ],
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "hexValue": "5e",
                              "id": 423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4882:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_d44aaa07e74d2fcafe12f68faaa5457fe3eb26e3579823cc5a63d688d25154bb",
                                "typeString": "literal_string \"^\""
                              },
                              "value": "^"
                            },
                            "id": 424,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toSlice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1188,
                            "src": "4882:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                            }
                          },
                          "id": 425,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4882:13:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        },
                        "id": 426,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "concat",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2730,
                        "src": "4882:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                          "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                        }
                      },
                      "id": 430,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4882:37:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4847:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 432,
                  "nodeType": "ExpressionStatement",
                  "src": "4847:72:0"
                }
              ]
            },
            "functionSelector": "f5866066",
            "id": 434,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 418,
                "modifierName": {
                  "id": 417,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4810:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4810:28:0"
              }
            ],
            "name": "setStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 413,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 434,
                  "src": "4749:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4749:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 415,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 434,
                  "src": "4774:21:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 414,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4774:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4748:48:0"
            },
            "returnParameters": {
              "id": 419,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4841:0:0"
            },
            "scope": 893,
            "src": "4724:200:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 446,
              "nodeType": "Block",
              "src": "5025:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "5031:39:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 441,
                        "name": "StringDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "5038:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 443,
                      "indexExpression": {
                        "id": 442,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 436,
                        "src": "5054:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5038:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 445,
                  "nodeType": "ExpressionStatement",
                  "src": "5031:39:0"
                }
              ]
            },
            "functionSelector": "ba69fcaa",
            "id": 447,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 439,
                "modifierName": {
                  "id": 438,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4994:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4994:28:0"
              }
            ],
            "name": "deleteStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 436,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 447,
                  "src": "4956:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 435,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4956:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4955:25:0"
            },
            "returnParameters": {
              "id": 440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5025:0:0"
            },
            "scope": 893,
            "src": "4928:147:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 466,
              "nodeType": "Block",
              "src": "5175:117:0",
              "statements": [
                {
                  "expression": {
                    "id": 458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 454,
                        "name": "permissionStatusForContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5181:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 456,
                      "indexExpression": {
                        "id": 455,
                        "name": "contractAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 449,
                        "src": "5209:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5181:44:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 457,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5228:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5181:51:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 459,
                  "nodeType": "ExpressionStatement",
                  "src": "5181:51:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 463,
                        "name": "contractAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 449,
                        "src": "5271:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 460,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "5238:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "5238:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5238:49:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 465,
                  "nodeType": "ExpressionStatement",
                  "src": "5238:49:0"
                }
              ]
            },
            "functionSelector": "3836fe6e",
            "id": 467,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 452,
                "modifierName": {
                  "id": 451,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5165:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5165:9:0"
              }
            ],
            "name": "addPermittedContract",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 449,
                  "mutability": "mutable",
                  "name": "contractAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 467,
                  "src": "5129:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 448,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5129:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5128:25:0"
            },
            "returnParameters": {
              "id": 453,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5175:0:0"
            },
            "scope": 893,
            "src": "5098:194:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 504,
              "nodeType": "Block",
              "src": "5379:171:0",
              "statements": [
                {
                  "body": {
                    "id": 502,
                    "nodeType": "Block",
                    "src": "5429:117:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 486,
                              "name": "permissionStatusForContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "5437:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 490,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 487,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 470,
                                "src": "5465:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 489,
                              "indexExpression": {
                                "id": 488,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 476,
                                "src": "5475:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5465:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5437:41:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5481:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "5437:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 493,
                        "nodeType": "ExpressionStatement",
                        "src": "5437:48:0"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 497,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 470,
                                "src": "5526:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 499,
                              "indexExpression": {
                                "id": 498,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 476,
                                "src": "5536:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5526:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 494,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "5493:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "5493:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 500,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5493:46:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 501,
                        "nodeType": "ExpressionStatement",
                        "src": "5493:46:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 479,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 476,
                      "src": "5402:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 480,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 470,
                        "src": "5406:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5406:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5402:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 503,
                  "initializationExpression": {
                    "assignments": [
                      476
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 476,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 503,
                        "src": "5390:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 475,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5390:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 478,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5399:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5390:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 484,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5424:3:0",
                      "subExpression": {
                        "id": 483,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 476,
                        "src": "5424:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 485,
                    "nodeType": "ExpressionStatement",
                    "src": "5424:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5385:161:0"
                }
              ]
            },
            "functionSelector": "dc02511e",
            "id": 505,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 473,
                "modifierName": {
                  "id": 472,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5369:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5369:9:0"
              }
            ],
            "name": "addPermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 470,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 505,
                  "src": "5328:28:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 468,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5328:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 469,
                    "nodeType": "ArrayTypeName",
                    "src": "5328:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5327:30:0"
            },
            "returnParameters": {
              "id": 474,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5379:0:0"
            },
            "scope": 893,
            "src": "5296:254:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 518,
              "nodeType": "Block",
              "src": "5628:57:0",
              "statements": [
                {
                  "expression": {
                    "id": 516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 512,
                        "name": "permissionStatusForContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5634:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 514,
                      "indexExpression": {
                        "id": 513,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 507,
                        "src": "5662:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5634:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5675:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "5634:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 517,
                  "nodeType": "ExpressionStatement",
                  "src": "5634:46:0"
                }
              ]
            },
            "functionSelector": "a98ad199",
            "id": 519,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 510,
                "modifierName": {
                  "id": 509,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5618:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5618:9:0"
              }
            ],
            "name": "removePermittedContract",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 507,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 519,
                  "src": "5588:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 506,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5588:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5587:19:0"
            },
            "returnParameters": {
              "id": 511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5628:0:0"
            },
            "scope": 893,
            "src": "5554:131:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 548,
              "nodeType": "Block",
              "src": "5775:118:0",
              "statements": [
                {
                  "body": {
                    "id": 546,
                    "nodeType": "Block",
                    "src": "5825:64:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 538,
                              "name": "permissionStatusForContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "5833:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 542,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 539,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 522,
                                "src": "5861:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 541,
                              "indexExpression": {
                                "id": 540,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 528,
                                "src": "5871:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5861:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5833:41:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "66616c7365",
                            "id": 543,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5877:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "5833:49:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 545,
                        "nodeType": "ExpressionStatement",
                        "src": "5833:49:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 531,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 528,
                      "src": "5798:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 532,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 522,
                        "src": "5802:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5802:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5798:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 547,
                  "initializationExpression": {
                    "assignments": [
                      528
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 528,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 547,
                        "src": "5786:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 527,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5786:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 530,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5795:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5786:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 536,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5820:3:0",
                      "subExpression": {
                        "id": 535,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 528,
                        "src": "5820:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 537,
                    "nodeType": "ExpressionStatement",
                    "src": "5820:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5781:108:0"
                }
              ]
            },
            "functionSelector": "0489fa70",
            "id": 549,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 525,
                "modifierName": {
                  "id": 524,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5765:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5765:9:0"
              }
            ],
            "name": "removePermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 522,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 549,
                  "src": "5724:28:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 520,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5724:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 521,
                    "nodeType": "ArrayTypeName",
                    "src": "5724:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5723:30:0"
            },
            "returnParameters": {
              "id": 526,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5775:0:0"
            },
            "scope": 893,
            "src": "5689:204:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 579,
              "nodeType": "Block",
              "src": "5966:196:0",
              "statements": [
                {
                  "body": {
                    "id": 575,
                    "nodeType": "Block",
                    "src": "6034:105:0",
                    "statements": [
                      {
                        "condition": {
                          "baseExpression": {
                            "id": 565,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "6046:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 569,
                          "indexExpression": {
                            "baseExpression": {
                              "id": 566,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "6074:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 568,
                            "indexExpression": {
                              "id": 567,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 555,
                              "src": "6102:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6074:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6046:59:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 574,
                        "nodeType": "IfStatement",
                        "src": "6042:91:0",
                        "trueBody": {
                          "id": 573,
                          "nodeType": "Block",
                          "src": "6107:26:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 571,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "6117:7:0",
                                "subExpression": {
                                  "id": 570,
                                  "name": "count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 552,
                                  "src": "6117:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 572,
                              "nodeType": "ExpressionStatement",
                              "src": "6117:7:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 558,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 555,
                      "src": "5989:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 559,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "5993:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5993:34:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5989:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 576,
                  "initializationExpression": {
                    "assignments": [
                      555
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 555,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "5977:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 554,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5977:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 557,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5986:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5977:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6029:3:0",
                      "subExpression": {
                        "id": 562,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 555,
                        "src": "6029:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 564,
                    "nodeType": "ExpressionStatement",
                    "src": "6029:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5972:167:0"
                },
                {
                  "expression": {
                    "id": 577,
                    "name": "count",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 552,
                    "src": "6152:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 553,
                  "id": 578,
                  "nodeType": "Return",
                  "src": "6145:12:0"
                }
              ]
            },
            "functionSelector": "26df61f6",
            "id": 580,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "permittedContractsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 550,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5930:2:0"
            },
            "returnParameters": {
              "id": 553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 552,
                  "mutability": "mutable",
                  "name": "count",
                  "nodeType": "VariableDeclaration",
                  "scope": 580,
                  "src": "5954:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 551,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5954:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5953:12:0"
            },
            "scope": 893,
            "src": "5897:265:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 625,
              "nodeType": "Block",
              "src": "6251:296:0",
              "statements": [
                {
                  "expression": {
                    "id": 593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 586,
                      "name": "addresses",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 584,
                      "src": "6257:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 590,
                            "name": "permittedContractsCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 580,
                            "src": "6283:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6283:25:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6269:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (address[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 587,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6273:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 588,
                          "nodeType": "ArrayTypeName",
                          "src": "6273:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        }
                      },
                      "id": 592,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6269:40:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6257:52:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 594,
                  "nodeType": "ExpressionStatement",
                  "src": "6257:52:0"
                },
                {
                  "body": {
                    "id": 621,
                    "nodeType": "Block",
                    "src": "6377:143:0",
                    "statements": [
                      {
                        "condition": {
                          "baseExpression": {
                            "id": 606,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "6389:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 610,
                          "indexExpression": {
                            "baseExpression": {
                              "id": 607,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "6417:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 609,
                            "indexExpression": {
                              "id": 608,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 596,
                              "src": "6445:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6417:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6389:59:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 620,
                        "nodeType": "IfStatement",
                        "src": "6385:129:0",
                        "trueBody": {
                          "id": 619,
                          "nodeType": "Block",
                          "src": "6450:64:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 611,
                                    "name": "addresses",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 584,
                                    "src": "6460:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 613,
                                  "indexExpression": {
                                    "id": 612,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 596,
                                    "src": "6470:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "6460:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 614,
                                    "name": "permittedContractsAddresses",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11,
                                    "src": "6475:27:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 616,
                                  "indexExpression": {
                                    "id": 615,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 596,
                                    "src": "6503:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6475:30:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "6460:45:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 618,
                              "nodeType": "ExpressionStatement",
                              "src": "6460:45:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 602,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 599,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 596,
                      "src": "6332:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 600,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "6336:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6336:34:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6332:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 622,
                  "initializationExpression": {
                    "assignments": [
                      596
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 596,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 622,
                        "src": "6320:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 595,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6320:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 598,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 597,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6329:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6320:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 604,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6372:3:0",
                      "subExpression": {
                        "id": 603,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 596,
                        "src": "6372:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 605,
                    "nodeType": "ExpressionStatement",
                    "src": "6372:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "6315:205:0"
                },
                {
                  "expression": {
                    "id": 623,
                    "name": "addresses",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 584,
                    "src": "6533:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "functionReturnParameters": 585,
                  "id": 624,
                  "nodeType": "Return",
                  "src": "6526:16:0"
                }
              ]
            },
            "functionSelector": "3138ee5c",
            "id": 626,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 581,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6197:2:0"
            },
            "returnParameters": {
              "id": 585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 584,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 626,
                  "src": "6223:26:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 582,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6223:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 583,
                    "nodeType": "ArrayTypeName",
                    "src": "6223:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6222:28:0"
            },
            "scope": 893,
            "src": "6166:381:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 767,
              "nodeType": "Block",
              "src": "6753:2227:0",
              "statements": [
                {
                  "assignments": [
                    641
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 641,
                      "mutability": "mutable",
                      "name": "countOfIntegerTypes",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "6759:24:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 640,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6759:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 645,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 643,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "6809:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      ],
                      "id": 642,
                      "name": "getCountOfIntegerTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 807,
                      "src": "6786:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint8_$dyn_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (uint8[] memory) pure returns (uint256)"
                      }
                    },
                    "id": 644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6786:40:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6759:67:0"
                },
                {
                  "assignments": [
                    647
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 647,
                      "mutability": "mutable",
                      "name": "objectsCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "8183:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 646,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8183:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 653,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 648,
                        "name": "recordFieldNames",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 629,
                        "src": "8203:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8203:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "expression": {
                        "id": 650,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "8229:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      },
                      "id": 651,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8229:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8203:49:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8183:69:0"
                },
                {
                  "expression": {
                    "id": 662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 654,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 636,
                      "src": "8258:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 658,
                            "name": "objectsCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 647,
                            "src": "8277:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "id": 659,
                            "name": "countOfIntegerTypes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 641,
                            "src": "8292:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8277:34:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8266:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 655,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "8270:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 656,
                          "nodeType": "ArrayTypeName",
                          "src": "8270:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8266:46:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8258:54:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 663,
                  "nodeType": "ExpressionStatement",
                  "src": "8258:54:0"
                },
                {
                  "assignments": [
                    665
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 665,
                      "mutability": "mutable",
                      "name": "k",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "8318:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 664,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8318:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 666,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8318:6:0"
                },
                {
                  "body": {
                    "id": 761,
                    "nodeType": "Block",
                    "src": "8370:573:0",
                    "statements": [
                      {
                        "body": {
                          "id": 748,
                          "nodeType": "Block",
                          "src": "8429:424:0",
                          "statements": [
                            {
                              "assignments": [
                                689
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 689,
                                  "mutability": "mutable",
                                  "name": "r_i",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 748,
                                  "src": "8439:8:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 688,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8439:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 697,
                              "initialValue": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 696,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 693,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 690,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 668,
                                        "src": "8451:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "expression": {
                                          "id": 691,
                                          "name": "recordFieldTypes",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 632,
                                          "src": "8455:16:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                            "typeString": "uint8[] calldata"
                                          }
                                        },
                                        "id": 692,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "8455:23:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "8451:27:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 694,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8450:29:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 695,
                                  "name": "j",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 678,
                                  "src": "8482:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8450:33:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "8439:44:0"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 702,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "baseExpression": {
                                    "id": 698,
                                    "name": "recordFieldTypes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 632,
                                    "src": "8497:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                      "typeString": "uint8[] calldata"
                                    }
                                  },
                                  "id": 700,
                                  "indexExpression": {
                                    "id": 699,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 678,
                                    "src": "8514:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8497:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "hexValue": "37",
                                  "id": 701,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8520:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_7_by_1",
                                    "typeString": "int_const 7"
                                  },
                                  "value": "7"
                                },
                                "src": "8497:24:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 746,
                                "nodeType": "Block",
                                "src": "8724:121:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 741,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "baseExpression": {
                                          "id": 730,
                                          "name": "items",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 636,
                                          "src": "8736:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 732,
                                        "indexExpression": {
                                          "id": 731,
                                          "name": "k",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 665,
                                          "src": "8742:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "8736:8:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 734,
                                              "name": "recordFieldNames",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 629,
                                              "src": "8776:16:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                                "typeString": "bytes32[] calldata"
                                              }
                                            },
                                            "id": 736,
                                            "indexExpression": {
                                              "id": 735,
                                              "name": "r_i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 689,
                                              "src": "8793:3:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8776:21:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 737,
                                              "name": "recordFieldTypes",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 632,
                                              "src": "8799:16:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                                "typeString": "uint8[] calldata"
                                              }
                                            },
                                            "id": 739,
                                            "indexExpression": {
                                              "id": 738,
                                              "name": "j",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 678,
                                              "src": "8816:1:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8799:19:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 733,
                                          "name": "getCorrespondingIntegerValue",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 876,
                                          "src": "8747:28:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_uint256_$",
                                            "typeString": "function (bytes32,uint8) view returns (uint256)"
                                          }
                                        },
                                        "id": 740,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8747:72:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "8736:83:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 742,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8736:83:0"
                                  },
                                  {
                                    "expression": {
                                      "id": 744,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "8831:3:0",
                                      "subExpression": {
                                        "id": 743,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 665,
                                        "src": "8831:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 745,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8831:3:0"
                                  }
                                ]
                              },
                              "id": 747,
                              "nodeType": "IfStatement",
                              "src": "8493:352:0",
                              "trueBody": {
                                "id": 729,
                                "nodeType": "Block",
                                "src": "8523:195:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 716,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 703,
                                        "name": "stringItem",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 638,
                                        "src": "8535:10:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "arguments": [
                                                  {
                                                    "baseExpression": {
                                                      "id": 709,
                                                      "name": "recordFieldNames",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 629,
                                                      "src": "8591:16:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                                        "typeString": "bytes32[] calldata"
                                                      }
                                                    },
                                                    "id": 711,
                                                    "indexExpression": {
                                                      "id": 710,
                                                      "name": "r_i",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 689,
                                                      "src": "8608:3:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                      }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "8591:21:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_bytes32",
                                                      "typeString": "bytes32"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_bytes32",
                                                      "typeString": "bytes32"
                                                    }
                                                  ],
                                                  "id": 708,
                                                  "name": "getStringValue",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 411,
                                                  "src": "8576:14:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_string_memory_ptr_$",
                                                    "typeString": "function (bytes32) view returns (string memory)"
                                                  }
                                                },
                                                "id": 712,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8576:37:0",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 713,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8576:45:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 714,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8576:47:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          ],
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "id": 704,
                                                "name": "stringItem",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 638,
                                                "src": "8548:10:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 705,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8548:18:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 706,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8548:20:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          },
                                          "id": 707,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "concat",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2730,
                                          "src": "8548:27:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                            "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                          }
                                        },
                                        "id": 715,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8548:76:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "8535:89:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 717,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8535:89:0"
                                  },
                                  {
                                    "expression": {
                                      "id": 727,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 718,
                                        "name": "stringItem",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 638,
                                        "src": "8636:10:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "hexValue": "3636362d2d4554482d5655452d2d363636",
                                                "id": 723,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8677:19:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_131a626a750d0d3e84166089e98cfdc206b122ec893ecd03823b6c3488878516",
                                                  "typeString": "literal_string \"666--ETH-VUE--666\""
                                                },
                                                "value": "666--ETH-VUE--666"
                                              },
                                              "id": 724,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8677:27:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 725,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8677:29:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          ],
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "id": 719,
                                                "name": "stringItem",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 638,
                                                "src": "8649:10:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 720,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8649:18:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 721,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8649:20:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          },
                                          "id": 722,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "concat",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2730,
                                          "src": "8649:27:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                            "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                          }
                                        },
                                        "id": 726,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8649:58:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "8636:71:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 728,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8636:71:0"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 681,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 678,
                            "src": "8395:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "id": 682,
                              "name": "recordFieldTypes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 632,
                              "src": "8399:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                "typeString": "uint8[] calldata"
                              }
                            },
                            "id": 683,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "8399:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8395:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 749,
                        "initializationExpression": {
                          "assignments": [
                            678
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 678,
                              "mutability": "mutable",
                              "name": "j",
                              "nodeType": "VariableDeclaration",
                              "scope": 749,
                              "src": "8383:6:0",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 677,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "8383:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 680,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8392:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "8383:10:0"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "8424:3:0",
                            "subExpression": {
                              "id": 685,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 678,
                              "src": "8424:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 687,
                          "nodeType": "ExpressionStatement",
                          "src": "8424:3:0"
                        },
                        "nodeType": "ForStatement",
                        "src": "8378:475:0"
                      },
                      {
                        "expression": {
                          "id": 759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 750,
                            "name": "stringItem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 638,
                            "src": "8860:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "hexValue": "3636362d2d4554482d5655452d4c4953542d2d363636",
                                    "id": 755,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8901:24:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_f53ceb0ac8edd232b0bd9e012b34541d786fb7955d184861125ae9df2fedee1a",
                                      "typeString": "literal_string \"666--ETH-VUE-LIST--666\""
                                    },
                                    "value": "666--ETH-VUE-LIST--666"
                                  },
                                  "id": 756,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1188,
                                  "src": "8901:32:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 757,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8901:34:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              ],
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 751,
                                    "name": "stringItem",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 638,
                                    "src": "8873:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 752,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1188,
                                  "src": "8873:18:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 753,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8873:20:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              },
                              "id": 754,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "concat",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2730,
                              "src": "8873:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                              }
                            },
                            "id": 758,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8873:63:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "8860:76:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "id": 760,
                        "nodeType": "ExpressionStatement",
                        "src": "8860:76:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 671,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 668,
                      "src": "8347:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 672,
                      "name": "objectsCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 647,
                      "src": "8351:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8347:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 762,
                  "initializationExpression": {
                    "assignments": [
                      668
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 668,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 762,
                        "src": "8335:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 667,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8335:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 670,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8344:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8335:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8365:3:0",
                      "subExpression": {
                        "id": 674,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 668,
                        "src": "8365:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 676,
                    "nodeType": "ExpressionStatement",
                    "src": "8365:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "8330:613:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 763,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 636,
                        "src": "8957:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 764,
                        "name": "stringItem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 638,
                        "src": "8964:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "id": 765,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8956:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_string_memory_ptr_$",
                      "typeString": "tuple(uint256[] memory,string memory)"
                    }
                  },
                  "functionReturnParameters": 639,
                  "id": 766,
                  "nodeType": "Return",
                  "src": "8949:26:0"
                }
              ]
            },
            "functionSelector": "82914e5d",
            "id": 768,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getObjectData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 633,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 629,
                  "mutability": "mutable",
                  "name": "recordFieldNames",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6591:35:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 627,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "6591:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 628,
                    "nodeType": "ArrayTypeName",
                    "src": "6591:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 632,
                  "mutability": "mutable",
                  "name": "recordFieldTypes",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6628:33:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 630,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "6628:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 631,
                    "nodeType": "ArrayTypeName",
                    "src": "6628:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6590:72:0"
            },
            "returnParameters": {
              "id": 639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 636,
                  "mutability": "mutable",
                  "name": "items",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6697:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 634,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "6697:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 635,
                    "nodeType": "ArrayTypeName",
                    "src": "6697:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 638,
                  "mutability": "mutable",
                  "name": "stringItem",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6722:24:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 637,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6722:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6691:59:0"
            },
            "scope": 893,
            "src": "6567:2413:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 806,
              "nodeType": "Block",
              "src": "9083:205:0",
              "statements": [
                {
                  "expression": {
                    "id": 778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 776,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 774,
                      "src": "9089:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 777,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9097:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9089:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 779,
                  "nodeType": "ExpressionStatement",
                  "src": "9089:9:0"
                },
                {
                  "body": {
                    "id": 802,
                    "nodeType": "Block",
                    "src": "9156:109:0",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 791,
                              "name": "recordFieldTypes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 771,
                              "src": "9168:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                                "typeString": "uint8[] memory"
                              }
                            },
                            "id": 793,
                            "indexExpression": {
                              "id": 792,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 781,
                              "src": "9185:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9168:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "37",
                            "id": 794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9191:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_7_by_1",
                              "typeString": "int_const 7"
                            },
                            "value": "7"
                          },
                          "src": "9168:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 801,
                        "nodeType": "IfStatement",
                        "src": "9164:95:0",
                        "trueBody": {
                          "id": 800,
                          "nodeType": "Block",
                          "src": "9194:65:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 796,
                                  "name": "count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 774,
                                  "src": "9240:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "31",
                                  "id": 797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9249:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "9240:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 799,
                              "nodeType": "ExpressionStatement",
                              "src": "9240:10:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 784,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 781,
                      "src": "9121:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 785,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 771,
                        "src": "9125:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                          "typeString": "uint8[] memory"
                        }
                      },
                      "id": 786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "9125:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9121:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 803,
                  "initializationExpression": {
                    "assignments": [
                      781
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 781,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 803,
                        "src": "9109:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 780,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9109:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 783,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9118:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9109:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9151:3:0",
                      "subExpression": {
                        "id": 788,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 781,
                        "src": "9151:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 790,
                    "nodeType": "ExpressionStatement",
                    "src": "9151:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "9104:161:0"
                },
                {
                  "expression": {
                    "id": 804,
                    "name": "count",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 774,
                    "src": "9278:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 775,
                  "id": 805,
                  "nodeType": "Return",
                  "src": "9271:12:0"
                }
              ]
            },
            "functionSelector": "6d38156f",
            "id": 807,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCountOfIntegerTypes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 771,
                  "mutability": "mutable",
                  "name": "recordFieldTypes",
                  "nodeType": "VariableDeclaration",
                  "scope": 807,
                  "src": "9017:31:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 769,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "9017:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 770,
                    "nodeType": "ArrayTypeName",
                    "src": "9017:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9016:33:0"
            },
            "returnParameters": {
              "id": 775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 774,
                  "mutability": "mutable",
                  "name": "count",
                  "nodeType": "VariableDeclaration",
                  "scope": 807,
                  "src": "9071:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 773,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9071:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9070:12:0"
            },
            "scope": 893,
            "src": "8984:304:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 875,
              "nodeType": "Block",
              "src": "9399:549:0",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 816,
                      "name": "uintType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 811,
                      "src": "9508:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 817,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9520:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "9508:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 828,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 826,
                        "name": "uintType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 811,
                        "src": "9596:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "32",
                        "id": 827,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9608:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "9596:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 839,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 837,
                          "name": "uintType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 811,
                          "src": "9679:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "33",
                          "id": 838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9691:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        },
                        "src": "9679:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 845,
                            "name": "uintType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 811,
                            "src": "9755:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "34",
                            "id": 846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9767:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "9755:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 856,
                              "name": "uintType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 811,
                              "src": "9840:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 857,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9852:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "9840:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 869,
                            "nodeType": "Block",
                            "src": "9921:23:0",
                            "statements": [
                              {
                                "expression": {
                                  "hexValue": "30",
                                  "id": 867,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9936:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "functionReturnParameters": 815,
                                "id": 868,
                                "nodeType": "Return",
                                "src": "9929:8:0"
                              }
                            ]
                          },
                          "id": 870,
                          "nodeType": "IfStatement",
                          "src": "9836:108:0",
                          "trueBody": {
                            "id": 866,
                            "nodeType": "Block",
                            "src": "9855:60:0",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 862,
                                          "name": "recordFieldName",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 809,
                                          "src": "9891:15:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 861,
                                        "name": "getBytes32Value",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 203,
                                        "src": "9875:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                                          "typeString": "function (bytes32) view returns (bytes32)"
                                        }
                                      },
                                      "id": 863,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9875:32:0",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 860,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "9870:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 859,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "9870:4:0",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 864,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "9870:38:0",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "functionReturnParameters": 815,
                                "id": 865,
                                "nodeType": "Return",
                                "src": "9863:45:0"
                              }
                            ]
                          }
                        },
                        "id": 871,
                        "nodeType": "IfStatement",
                        "src": "9751:193:0",
                        "trueBody": {
                          "id": 855,
                          "nodeType": "Block",
                          "src": "9770:60:0",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "id": 851,
                                        "name": "recordFieldName",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 809,
                                        "src": "9806:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 850,
                                      "name": "getAddressValue",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 80,
                                      "src": "9790:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                        "typeString": "function (bytes32) view returns (address)"
                                      }
                                    },
                                    "id": 852,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9790:32:0",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 849,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9785:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 848,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9785:4:0",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 853,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9785:38:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "functionReturnParameters": 815,
                              "id": 854,
                              "nodeType": "Return",
                              "src": "9778:45:0"
                            }
                          ]
                        }
                      },
                      "id": 872,
                      "nodeType": "IfStatement",
                      "src": "9675:269:0",
                      "trueBody": {
                        "id": 844,
                        "nodeType": "Block",
                        "src": "9694:51:0",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 841,
                                  "name": "recordFieldName",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 809,
                                  "src": "9722:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 840,
                                "name": "getUIntValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 285,
                                "src": "9709:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                                  "typeString": "function (bytes32) view returns (uint256)"
                                }
                              },
                              "id": 842,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9709:29:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "functionReturnParameters": 815,
                            "id": 843,
                            "nodeType": "Return",
                            "src": "9702:36:0"
                          }
                        ]
                      }
                    },
                    "id": 873,
                    "nodeType": "IfStatement",
                    "src": "9592:352:0",
                    "trueBody": {
                      "id": 836,
                      "nodeType": "Block",
                      "src": "9611:58:0",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 832,
                                    "name": "recordFieldName",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 809,
                                    "src": "9645:15:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 831,
                                  "name": "getUInt8Value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 370,
                                  "src": "9631:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint8_$",
                                    "typeString": "function (bytes32) view returns (uint8)"
                                  }
                                },
                                "id": 833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9631:30:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 830,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9626:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 829,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "9626:4:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 834,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9626:36:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "functionReturnParameters": 815,
                          "id": 835,
                          "nodeType": "Return",
                          "src": "9619:43:0"
                        }
                      ]
                    }
                  },
                  "id": 874,
                  "nodeType": "IfStatement",
                  "src": "9504:440:0",
                  "trueBody": {
                    "id": 825,
                    "nodeType": "Block",
                    "src": "9523:63:0",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 821,
                                  "name": "recordFieldName",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 809,
                                  "src": "9562:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 820,
                                "name": "getBoolValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 121,
                                "src": "9549:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                                  "typeString": "function (bytes32) view returns (bool)"
                                }
                              },
                              "id": 822,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9549:29:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 819,
                            "name": "boolToUInt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 892,
                            "src": "9538:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
                              "typeString": "function (bool) pure returns (uint256)"
                            }
                          },
                          "id": 823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9538:41:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 815,
                        "id": 824,
                        "nodeType": "Return",
                        "src": "9531:48:0"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "506d7d00",
            "id": 876,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCorrespondingIntegerValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 809,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9331:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9331:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 811,
                  "mutability": "mutable",
                  "name": "uintType",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9356:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 810,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9356:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9330:41:0"
            },
            "returnParameters": {
              "id": 815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 814,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9393:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 813,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9393:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9392:6:0"
            },
            "scope": 893,
            "src": "9292:656:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 891,
              "nodeType": "Block",
              "src": "10017:78:0",
              "statements": [
                {
                  "condition": {
                    "id": 883,
                    "name": "logicEntry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 878,
                    "src": "10027:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 889,
                    "nodeType": "Block",
                    "src": "10068:23:0",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "30",
                          "id": 887,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10083:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 882,
                        "id": 888,
                        "nodeType": "Return",
                        "src": "10076:8:0"
                      }
                    ]
                  },
                  "id": 890,
                  "nodeType": "IfStatement",
                  "src": "10023:68:0",
                  "trueBody": {
                    "id": 886,
                    "nodeType": "Block",
                    "src": "10039:23:0",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "31",
                          "id": 884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10054:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "functionReturnParameters": 882,
                        "id": 885,
                        "nodeType": "Return",
                        "src": "10047:8:0"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "ffbd400b",
            "id": 892,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "boolToUInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 878,
                  "mutability": "mutable",
                  "name": "logicEntry",
                  "nodeType": "VariableDeclaration",
                  "scope": 892,
                  "src": "9973:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 877,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9973:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9972:17:0"
            },
            "returnParameters": {
              "id": 882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 881,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 892,
                  "src": "10011:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 880,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10011:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10010:6:0"
            },
            "scope": 893,
            "src": "9952:143:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 894,
        "src": "215:9882:0"
      }
    ],
    "src": "36:10062:0"
  },
  "legacyAST": {
    "absolutePath": "/home/dh206382/dev/eth-vue/contracts/DB.sol",
    "exportedSymbols": {
      "DB": [
        893
      ],
      "Destructible": [
        3418
      ],
      "Ownable": [
        3673
      ],
      "SafeMath": [
        3552
      ],
      "strings": [
        2845
      ]
    },
    "id": 894,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "36:31:0"
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/zeppelin/lifecycle/Destructible.sol",
        "file": "./zeppelin/lifecycle/Destructible.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 3419,
        "src": "69:47:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/zeppelin/math/SafeMath.sol",
        "file": "./zeppelin/math/SafeMath.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 3553,
        "src": "117:38:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/dh206382/dev/eth-vue/contracts/lib/arachnid/solidity-stringutils/strings.sol",
        "file": "./lib/arachnid/solidity-stringutils/strings.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 894,
        "sourceUnit": 2846,
        "src": "156:57:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 5,
              "name": "Destructible",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3418,
              "src": "230:12:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Destructible_$3418",
                "typeString": "contract Destructible"
              }
            },
            "id": 6,
            "nodeType": "InheritanceSpecifier",
            "src": "230:12:0"
          }
        ],
        "contractDependencies": [
          3418,
          3673
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 893,
        "linearizedBaseContracts": [
          893,
          3418,
          3673
        ],
        "name": "DB",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 8,
            "libraryName": {
              "id": 7,
              "name": "strings",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2845,
              "src": "253:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_strings_$2845",
                "typeString": "library strings"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "247:20:0"
          },
          {
            "constant": false,
            "functionSelector": "73fb35ee",
            "id": 11,
            "mutability": "mutable",
            "name": "permittedContractsAddresses",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "271:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 9,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "271:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 10,
              "nodeType": "ArrayTypeName",
              "src": "271:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "9420e58d",
            "id": 15,
            "mutability": "mutable",
            "name": "permissionStatusForContract",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "319:59:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 14,
              "keyType": {
                "id": 12,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "327:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "319:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 13,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "338:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 19,
            "mutability": "mutable",
            "name": "AddressDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "423:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
              "typeString": "mapping(bytes32 => address)"
            },
            "typeName": {
              "id": 18,
              "keyType": {
                "id": 16,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "431:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "423:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                "typeString": "mapping(bytes32 => address)"
              },
              "valueType": {
                "id": 17,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "442:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 23,
            "mutability": "mutable",
            "name": "BoolDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "471:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 22,
              "keyType": {
                "id": 20,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "479:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "471:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 21,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "490:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 27,
            "mutability": "mutable",
            "name": "BytesDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "513:40:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
              "typeString": "mapping(bytes32 => bytes)"
            },
            "typeName": {
              "id": 26,
              "keyType": {
                "id": 24,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "521:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "513:25:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                "typeString": "mapping(bytes32 => bytes)"
              },
              "valueType": {
                "id": 25,
                "name": "bytes",
                "nodeType": "ElementaryTypeName",
                "src": "532:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 31,
            "mutability": "mutable",
            "name": "Bytes32DataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "557:44:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
              "typeString": "mapping(bytes32 => bytes32)"
            },
            "typeName": {
              "id": 30,
              "keyType": {
                "id": 28,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "565:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "557:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                "typeString": "mapping(bytes32 => bytes32)"
              },
              "valueType": {
                "id": 29,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "576:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 35,
            "mutability": "mutable",
            "name": "IntDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "605:36:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
              "typeString": "mapping(bytes32 => int256)"
            },
            "typeName": {
              "id": 34,
              "keyType": {
                "id": 32,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "613:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "605:23:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                "typeString": "mapping(bytes32 => int256)"
              },
              "valueType": {
                "id": 33,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "624:3:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 39,
            "mutability": "mutable",
            "name": "UIntDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "645:38:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 38,
              "keyType": {
                "id": 36,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "653:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "645:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 37,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "664:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 43,
            "mutability": "mutable",
            "name": "UInt8DataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "687:40:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
              "typeString": "mapping(bytes32 => uint8)"
            },
            "typeName": {
              "id": 42,
              "keyType": {
                "id": 40,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "695:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "687:25:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                "typeString": "mapping(bytes32 => uint8)"
              },
              "valueType": {
                "id": 41,
                "name": "uint8",
                "nodeType": "ElementaryTypeName",
                "src": "706:5:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 47,
            "mutability": "mutable",
            "name": "StringDataStore",
            "nodeType": "VariableDeclaration",
            "scope": 893,
            "src": "731:42:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
              "typeString": "mapping(bytes32 => string)"
            },
            "typeName": {
              "id": 46,
              "keyType": {
                "id": 44,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "739:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "731:26:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                "typeString": "mapping(bytes32 => string)"
              },
              "valueType": {
                "id": 45,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "750:6:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 63,
              "nodeType": "Block",
              "src": "816:91:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 59,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "baseExpression": {
                            "id": 50,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "830:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 53,
                          "indexExpression": {
                            "expression": {
                              "id": 51,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "858:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 52,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "858:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "830:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          },
                          "id": 58,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 54,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "873:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 55,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "873:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 56,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3590,
                              "src": "887:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 57,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "887:7:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "873:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "830:64:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 49,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "822:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 60,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "822:73:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 61,
                  "nodeType": "ExpressionStatement",
                  "src": "822:73:0"
                },
                {
                  "id": 62,
                  "nodeType": "PlaceholderStatement",
                  "src": "901:1:0"
                }
              ]
            },
            "id": 64,
            "name": "onlyPermittedContractOrOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 48,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "816:0:0"
            },
            "src": "778:129:0",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 67,
              "nodeType": "Block",
              "src": "926:3:0",
              "statements": []
            },
            "id": 68,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 65,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "923:2:0"
            },
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "926:0:0"
            },
            "scope": 893,
            "src": "911:18:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 79,
              "nodeType": "Block",
              "src": "1036:51:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 75,
                      "name": "AddressDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19,
                      "src": "1049:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 77,
                    "indexExpression": {
                      "id": 76,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 70,
                      "src": "1066:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1049:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 74,
                  "id": 78,
                  "nodeType": "Return",
                  "src": "1042:40:0"
                }
              ]
            },
            "functionSelector": "4c77e5ba",
            "id": 80,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 71,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 70,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 80,
                  "src": "981:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 69,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "980:25:0"
            },
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 73,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 80,
                  "src": "1027:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 72,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1027:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1026:9:0"
            },
            "scope": 893,
            "src": "955:132:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 95,
              "nodeType": "Block",
              "src": "1201:52:0",
              "statements": [
                {
                  "expression": {
                    "id": 93,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 89,
                        "name": "AddressDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19,
                        "src": "1207:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 91,
                      "indexExpression": {
                        "id": 90,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 82,
                        "src": "1224:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1207:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 92,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "1243:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1207:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 94,
                  "nodeType": "ExpressionStatement",
                  "src": "1207:41:0"
                }
              ]
            },
            "functionSelector": "5a2bf25a",
            "id": 96,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 87,
                "modifierName": {
                  "id": 86,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1170:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1170:28:0"
              }
            ],
            "name": "setAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 85,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 82,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 96,
                  "src": "1117:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1117:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 84,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 96,
                  "src": "1142:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 83,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1116:40:0"
            },
            "returnParameters": {
              "id": 88,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1201:0:0"
            },
            "scope": 893,
            "src": "1091:162:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 108,
              "nodeType": "Block",
              "src": "1355:51:0",
              "statements": [
                {
                  "expression": {
                    "id": 106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1361:40:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 103,
                        "name": "AddressDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19,
                        "src": "1368:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 105,
                      "indexExpression": {
                        "id": 104,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 98,
                        "src": "1385:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1368:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 107,
                  "nodeType": "ExpressionStatement",
                  "src": "1361:40:0"
                }
              ]
            },
            "functionSelector": "043106c0",
            "id": 109,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 101,
                "modifierName": {
                  "id": 100,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1324:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1324:28:0"
              }
            ],
            "name": "deleteAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 99,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 98,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 109,
                  "src": "1286:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1286:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1285:25:0"
            },
            "returnParameters": {
              "id": 102,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1355:0:0"
            },
            "scope": 893,
            "src": "1257:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 120,
              "nodeType": "Block",
              "src": "1504:48:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 116,
                      "name": "BoolDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "1517:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                        "typeString": "mapping(bytes32 => bool)"
                      }
                    },
                    "id": 118,
                    "indexExpression": {
                      "id": 117,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 111,
                      "src": "1531:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1517:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 115,
                  "id": 119,
                  "nodeType": "Return",
                  "src": "1510:37:0"
                }
              ]
            },
            "functionSelector": "8ffa9690",
            "id": 121,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 111,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 121,
                  "src": "1452:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 110,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1451:25:0"
            },
            "returnParameters": {
              "id": 115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 114,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 121,
                  "src": "1498:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 113,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1498:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1497:6:0"
            },
            "scope": 893,
            "src": "1429:123:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 136,
              "nodeType": "Block",
              "src": "1660:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 134,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 130,
                        "name": "BoolDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1666:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 132,
                      "indexExpression": {
                        "id": 131,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 123,
                        "src": "1680:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1666:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 133,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 125,
                      "src": "1699:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1666:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 135,
                  "nodeType": "ExpressionStatement",
                  "src": "1666:38:0"
                }
              ]
            },
            "functionSelector": "52d2d83d",
            "id": 137,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 128,
                "modifierName": {
                  "id": 127,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1629:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1629:28:0"
              }
            ],
            "name": "setBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 123,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 137,
                  "src": "1579:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 122,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1579:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 125,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 137,
                  "src": "1604:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1604:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1578:37:0"
            },
            "returnParameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1660:0:0"
            },
            "scope": 893,
            "src": "1556:153:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 149,
              "nodeType": "Block",
              "src": "1808:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1814:37:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 144,
                        "name": "BoolDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "1821:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 146,
                      "indexExpression": {
                        "id": 145,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 139,
                        "src": "1835:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1821:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 148,
                  "nodeType": "ExpressionStatement",
                  "src": "1814:37:0"
                }
              ]
            },
            "functionSelector": "00a35aa2",
            "id": 150,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 142,
                "modifierName": {
                  "id": 141,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "1777:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1777:28:0"
              }
            ],
            "name": "deleteBoolValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 139,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 150,
                  "src": "1739:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 138,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1739:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1738:25:0"
            },
            "returnParameters": {
              "id": 143,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1808:0:0"
            },
            "scope": 893,
            "src": "1713:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 161,
              "nodeType": "Block",
              "src": "1964:49:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 157,
                      "name": "BytesDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27,
                      "src": "1977:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 159,
                    "indexExpression": {
                      "id": 158,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 152,
                      "src": "1992:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1977:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 156,
                  "id": 160,
                  "nodeType": "Return",
                  "src": "1970:38:0"
                }
              ]
            },
            "functionSelector": "44bfa56e",
            "id": 162,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 152,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 162,
                  "src": "1904:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1904:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1903:25:0"
            },
            "returnParameters": {
              "id": 156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 155,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 162,
                  "src": "1950:12:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 154,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1950:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1949:14:0"
            },
            "scope": 893,
            "src": "1880:133:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 177,
              "nodeType": "Block",
              "src": "2132:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 171,
                        "name": "BytesDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "2138:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 173,
                      "indexExpression": {
                        "id": 172,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 164,
                        "src": "2153:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2138:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 174,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 166,
                      "src": "2172:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "2138:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "2138:39:0"
                }
              ]
            },
            "functionSelector": "c9a52d2c",
            "id": 178,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 169,
                "modifierName": {
                  "id": 168,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2101:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2101:28:0"
              }
            ],
            "name": "setBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 164,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 178,
                  "src": "2041:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2041:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 166,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 178,
                  "src": "2066:20:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2040:47:0"
            },
            "returnParameters": {
              "id": 170,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2132:0:0"
            },
            "scope": 893,
            "src": "2017:165:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 190,
              "nodeType": "Block",
              "src": "2282:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2288:38:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 185,
                        "name": "BytesDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27,
                        "src": "2295:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 187,
                      "indexExpression": {
                        "id": 186,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 180,
                        "src": "2310:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2295:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 189,
                  "nodeType": "ExpressionStatement",
                  "src": "2288:38:0"
                }
              ]
            },
            "functionSelector": "0c55d925",
            "id": 191,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 183,
                "modifierName": {
                  "id": 182,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2251:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2251:28:0"
              }
            ],
            "name": "deleteBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 180,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 191,
                  "src": "2213:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2213:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2212:25:0"
            },
            "returnParameters": {
              "id": 184,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2282:0:0"
            },
            "scope": 893,
            "src": "2186:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 202,
              "nodeType": "Block",
              "src": "2438:51:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 198,
                      "name": "Bytes32DataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31,
                      "src": "2451:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 200,
                    "indexExpression": {
                      "id": 199,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 193,
                      "src": "2468:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2451:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 197,
                  "id": 201,
                  "nodeType": "Return",
                  "src": "2444:40:0"
                }
              ]
            },
            "functionSelector": "025ec81a",
            "id": 203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 194,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 193,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "2383:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2383:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2382:25:0"
            },
            "returnParameters": {
              "id": 197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 196,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "2429:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2429:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:9:0"
            },
            "scope": 893,
            "src": "2357:132:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 218,
              "nodeType": "Block",
              "src": "2603:52:0",
              "statements": [
                {
                  "expression": {
                    "id": 216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 212,
                        "name": "Bytes32DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31,
                        "src": "2609:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 214,
                      "indexExpression": {
                        "id": 213,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 205,
                        "src": "2626:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2609:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 215,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 207,
                      "src": "2645:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2609:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 217,
                  "nodeType": "ExpressionStatement",
                  "src": "2609:41:0"
                }
              ]
            },
            "functionSelector": "25cf512d",
            "id": 219,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 210,
                "modifierName": {
                  "id": 209,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2572:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2572:28:0"
              }
            ],
            "name": "setBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 205,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "2519:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 204,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2519:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 207,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "2544:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2544:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2518:40:0"
            },
            "returnParameters": {
              "id": 211,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2603:0:0"
            },
            "scope": 893,
            "src": "2493:162:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 231,
              "nodeType": "Block",
              "src": "2757:51:0",
              "statements": [
                {
                  "expression": {
                    "id": 229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2763:40:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 226,
                        "name": "Bytes32DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31,
                        "src": "2770:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 228,
                      "indexExpression": {
                        "id": 227,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 221,
                        "src": "2787:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2770:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 230,
                  "nodeType": "ExpressionStatement",
                  "src": "2763:40:0"
                }
              ]
            },
            "functionSelector": "124f2418",
            "id": 232,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 224,
                "modifierName": {
                  "id": 223,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "2726:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2726:28:0"
              }
            ],
            "name": "deleteBytes32Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 221,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 232,
                  "src": "2688:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2688:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2687:25:0"
            },
            "returnParameters": {
              "id": 225,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2757:0:0"
            },
            "scope": 893,
            "src": "2659:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 243,
              "nodeType": "Block",
              "src": "2903:47:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 239,
                      "name": "IntDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35,
                      "src": "2916:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                        "typeString": "mapping(bytes32 => int256)"
                      }
                    },
                    "id": 241,
                    "indexExpression": {
                      "id": 240,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 234,
                      "src": "2929:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2916:29:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 238,
                  "id": 242,
                  "nodeType": "Return",
                  "src": "2909:36:0"
                }
              ]
            },
            "functionSelector": "9007127b",
            "id": 244,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 244,
                  "src": "2852:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2852:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2851:25:0"
            },
            "returnParameters": {
              "id": 238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 237,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 244,
                  "src": "2898:3:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 236,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2898:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2897:5:0"
            },
            "scope": 893,
            "src": "2830:120:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 259,
              "nodeType": "Block",
              "src": "3056:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 253,
                        "name": "IntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "3062:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 255,
                      "indexExpression": {
                        "id": 254,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 246,
                        "src": "3075:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3062:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 256,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 248,
                      "src": "3094:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3062:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 258,
                  "nodeType": "ExpressionStatement",
                  "src": "3062:37:0"
                }
              ]
            },
            "functionSelector": "a77aa49e",
            "id": 260,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 251,
                "modifierName": {
                  "id": 250,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3025:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3025:28:0"
              }
            ],
            "name": "setIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 246,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 260,
                  "src": "2976:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 245,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2976:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 248,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 260,
                  "src": "3001:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 247,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "3001:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2975:36:0"
            },
            "returnParameters": {
              "id": 252,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3056:0:0"
            },
            "scope": 893,
            "src": "2954:150:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 272,
              "nodeType": "Block",
              "src": "3202:47:0",
              "statements": [
                {
                  "expression": {
                    "id": 270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "3208:36:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 267,
                        "name": "IntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "3215:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 269,
                      "indexExpression": {
                        "id": 268,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 262,
                        "src": "3228:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3215:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 271,
                  "nodeType": "ExpressionStatement",
                  "src": "3208:36:0"
                }
              ]
            },
            "functionSelector": "8267a9ee",
            "id": 273,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 265,
                "modifierName": {
                  "id": 264,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3171:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3171:28:0"
              }
            ],
            "name": "deleteIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 262,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 273,
                  "src": "3133:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 261,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3133:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3132:25:0"
            },
            "returnParameters": {
              "id": 266,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3202:0:0"
            },
            "scope": 893,
            "src": "3108:141:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 284,
              "nodeType": "Block",
              "src": "3347:48:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 280,
                      "name": "UIntDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 39,
                      "src": "3360:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 282,
                    "indexExpression": {
                      "id": 281,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 275,
                      "src": "3374:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3360:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 279,
                  "id": 283,
                  "nodeType": "Return",
                  "src": "3353:37:0"
                }
              ]
            },
            "functionSelector": "bdc963d8",
            "id": 285,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 275,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "3295:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 274,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3295:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3294:25:0"
            },
            "returnParameters": {
              "id": 279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 278,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "3341:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 277,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3341:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3340:6:0"
            },
            "scope": 893,
            "src": "3272:123:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 300,
              "nodeType": "Block",
              "src": "3501:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 294,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3507:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 296,
                      "indexExpression": {
                        "id": 295,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "3521:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3507:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 297,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 289,
                      "src": "3540:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3507:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 299,
                  "nodeType": "ExpressionStatement",
                  "src": "3507:38:0"
                }
              ]
            },
            "functionSelector": "3562fd20",
            "id": 301,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 292,
                "modifierName": {
                  "id": 291,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3470:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3470:28:0"
              }
            ],
            "name": "setUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 290,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 287,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 301,
                  "src": "3422:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 286,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 289,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 301,
                  "src": "3447:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 288,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3447:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3421:37:0"
            },
            "returnParameters": {
              "id": 293,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3501:0:0"
            },
            "scope": 893,
            "src": "3399:151:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 322,
              "nodeType": "Block",
              "src": "3658:95:0",
              "statements": [
                {
                  "expression": {
                    "id": 320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 310,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3664:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 312,
                      "indexExpression": {
                        "id": 311,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 303,
                        "src": "3678:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3664:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 315,
                            "name": "UIntDataStore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "3710:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 317,
                          "indexExpression": {
                            "id": 316,
                            "name": "recordFieldName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 303,
                            "src": "3724:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3710:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 318,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 305,
                          "src": "3742:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 313,
                          "name": "SafeMath",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3552,
                          "src": "3697:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_SafeMath_$3552_$",
                            "typeString": "type(library SafeMath)"
                          }
                        },
                        "id": 314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3530,
                        "src": "3697:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3697:51:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3664:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 321,
                  "nodeType": "ExpressionStatement",
                  "src": "3664:84:0"
                }
              ]
            },
            "functionSelector": "c8d1c017",
            "id": 323,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 308,
                "modifierName": {
                  "id": 307,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3627:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3627:28:0"
              }
            ],
            "name": "addUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 303,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 323,
                  "src": "3577:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 302,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3577:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 305,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 323,
                  "src": "3602:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 304,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3602:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3576:37:0"
            },
            "returnParameters": {
              "id": 309,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3658:0:0"
            },
            "scope": 893,
            "src": "3554:199:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 344,
              "nodeType": "Block",
              "src": "3861:95:0",
              "statements": [
                {
                  "expression": {
                    "id": 342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 332,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "3867:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 334,
                      "indexExpression": {
                        "id": 333,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 325,
                        "src": "3881:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3867:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 337,
                            "name": "UIntDataStore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 39,
                            "src": "3913:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 339,
                          "indexExpression": {
                            "id": 338,
                            "name": "recordFieldName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 325,
                            "src": "3927:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3913:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 340,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 327,
                          "src": "3945:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 335,
                          "name": "SafeMath",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3552,
                          "src": "3900:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_SafeMath_$3552_$",
                            "typeString": "type(library SafeMath)"
                          }
                        },
                        "id": 336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3505,
                        "src": "3900:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3900:51:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3867:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 343,
                  "nodeType": "ExpressionStatement",
                  "src": "3867:84:0"
                }
              ]
            },
            "functionSelector": "6aebbbd9",
            "id": 345,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 330,
                "modifierName": {
                  "id": 329,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "3830:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3830:28:0"
              }
            ],
            "name": "subUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 325,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 345,
                  "src": "3780:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 324,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3780:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 327,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 345,
                  "src": "3805:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 326,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3805:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3779:37:0"
            },
            "returnParameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3861:0:0"
            },
            "scope": 893,
            "src": "3757:199:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 357,
              "nodeType": "Block",
              "src": "4055:48:0",
              "statements": [
                {
                  "expression": {
                    "id": 355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4061:37:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 352,
                        "name": "UIntDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 39,
                        "src": "4068:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 354,
                      "indexExpression": {
                        "id": 353,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 347,
                        "src": "4082:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4068:30:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 356,
                  "nodeType": "ExpressionStatement",
                  "src": "4061:37:0"
                }
              ]
            },
            "functionSelector": "93fe4248",
            "id": 358,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 350,
                "modifierName": {
                  "id": 349,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4024:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4024:28:0"
              }
            ],
            "name": "deleteUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 347,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 358,
                  "src": "3986:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 346,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3986:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3985:25:0"
            },
            "returnParameters": {
              "id": 351,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4055:0:0"
            },
            "scope": 893,
            "src": "3960:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 369,
              "nodeType": "Block",
              "src": "4203:49:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 365,
                      "name": "UInt8DataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43,
                      "src": "4216:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                        "typeString": "mapping(bytes32 => uint8)"
                      }
                    },
                    "id": 367,
                    "indexExpression": {
                      "id": 366,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 360,
                      "src": "4231:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4216:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 364,
                  "id": 368,
                  "nodeType": "Return",
                  "src": "4209:38:0"
                }
              ]
            },
            "functionSelector": "7a0e03ec",
            "id": 370,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 360,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 370,
                  "src": "4151:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 359,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4151:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4150:25:0"
            },
            "returnParameters": {
              "id": 364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 363,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 370,
                  "src": "4197:5:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 362,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4197:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4196:7:0"
            },
            "scope": 893,
            "src": "4127:125:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 385,
              "nodeType": "Block",
              "src": "4360:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 379,
                        "name": "UInt8DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43,
                        "src": "4366:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                          "typeString": "mapping(bytes32 => uint8)"
                        }
                      },
                      "id": 381,
                      "indexExpression": {
                        "id": 380,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 372,
                        "src": "4381:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4366:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 382,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 374,
                      "src": "4400:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "4366:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 384,
                  "nodeType": "ExpressionStatement",
                  "src": "4366:39:0"
                }
              ]
            },
            "functionSelector": "0bd85158",
            "id": 386,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 377,
                "modifierName": {
                  "id": 376,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4329:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4329:28:0"
              }
            ],
            "name": "setUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 372,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 386,
                  "src": "4280:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 371,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4280:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 374,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 386,
                  "src": "4305:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 373,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4305:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4279:38:0"
            },
            "returnParameters": {
              "id": 378,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4360:0:0"
            },
            "scope": 893,
            "src": "4256:154:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 398,
              "nodeType": "Block",
              "src": "4510:49:0",
              "statements": [
                {
                  "expression": {
                    "id": 396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4516:38:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 393,
                        "name": "UInt8DataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43,
                        "src": "4523:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint8_$",
                          "typeString": "mapping(bytes32 => uint8)"
                        }
                      },
                      "id": 395,
                      "indexExpression": {
                        "id": 394,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 388,
                        "src": "4538:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4523:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 397,
                  "nodeType": "ExpressionStatement",
                  "src": "4516:38:0"
                }
              ]
            },
            "functionSelector": "84d7c99d",
            "id": 399,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 391,
                "modifierName": {
                  "id": 390,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4479:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4479:28:0"
              }
            ],
            "name": "deleteUInt8Value",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 388,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 399,
                  "src": "4441:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 387,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4441:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4440:25:0"
            },
            "returnParameters": {
              "id": 392,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4510:0:0"
            },
            "scope": 893,
            "src": "4414:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 410,
              "nodeType": "Block",
              "src": "4670:50:0",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 406,
                      "name": "StringDataStore",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 47,
                      "src": "4683:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                        "typeString": "mapping(bytes32 => string storage ref)"
                      }
                    },
                    "id": 408,
                    "indexExpression": {
                      "id": 407,
                      "name": "recordFieldName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 401,
                      "src": "4699:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4683:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 405,
                  "id": 409,
                  "nodeType": "Return",
                  "src": "4676:39:0"
                }
              ]
            },
            "functionSelector": "a209a29c",
            "id": 411,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 401,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 411,
                  "src": "4609:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 400,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4609:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4608:25:0"
            },
            "returnParameters": {
              "id": 405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 411,
                  "src": "4655:13:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4655:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4654:15:0"
            },
            "scope": 893,
            "src": "4584:136:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 433,
              "nodeType": "Block",
              "src": "4841:83:0",
              "statements": [
                {
                  "expression": {
                    "id": 431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 420,
                        "name": "StringDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "4847:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 422,
                      "indexExpression": {
                        "id": 421,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 413,
                        "src": "4863:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4847:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 427,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 415,
                              "src": "4903:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            },
                            "id": 428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toSlice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1188,
                            "src": "4903:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                            }
                          },
                          "id": 429,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4903:15:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        ],
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "hexValue": "5e",
                              "id": 423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4882:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_d44aaa07e74d2fcafe12f68faaa5457fe3eb26e3579823cc5a63d688d25154bb",
                                "typeString": "literal_string \"^\""
                              },
                              "value": "^"
                            },
                            "id": 424,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toSlice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1188,
                            "src": "4882:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                            }
                          },
                          "id": 425,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4882:13:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                            "typeString": "struct strings.slice memory"
                          }
                        },
                        "id": 426,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "concat",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2730,
                        "src": "4882:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                          "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                        }
                      },
                      "id": 430,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4882:37:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4847:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 432,
                  "nodeType": "ExpressionStatement",
                  "src": "4847:72:0"
                }
              ]
            },
            "functionSelector": "f5866066",
            "id": 434,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 418,
                "modifierName": {
                  "id": 417,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4810:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4810:28:0"
              }
            ],
            "name": "setStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 413,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 434,
                  "src": "4749:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4749:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 415,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 434,
                  "src": "4774:21:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 414,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4774:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4748:48:0"
            },
            "returnParameters": {
              "id": 419,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4841:0:0"
            },
            "scope": 893,
            "src": "4724:200:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 446,
              "nodeType": "Block",
              "src": "5025:50:0",
              "statements": [
                {
                  "expression": {
                    "id": 444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "5031:39:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 441,
                        "name": "StringDataStore",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "5038:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 443,
                      "indexExpression": {
                        "id": 442,
                        "name": "recordFieldName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 436,
                        "src": "5054:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5038:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 445,
                  "nodeType": "ExpressionStatement",
                  "src": "5031:39:0"
                }
              ]
            },
            "functionSelector": "ba69fcaa",
            "id": 447,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 439,
                "modifierName": {
                  "id": 438,
                  "name": "onlyPermittedContractOrOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 64,
                  "src": "4994:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4994:28:0"
              }
            ],
            "name": "deleteStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 436,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 447,
                  "src": "4956:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 435,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4956:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4955:25:0"
            },
            "returnParameters": {
              "id": 440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5025:0:0"
            },
            "scope": 893,
            "src": "4928:147:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 466,
              "nodeType": "Block",
              "src": "5175:117:0",
              "statements": [
                {
                  "expression": {
                    "id": 458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 454,
                        "name": "permissionStatusForContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5181:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 456,
                      "indexExpression": {
                        "id": 455,
                        "name": "contractAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 449,
                        "src": "5209:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5181:44:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 457,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5228:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5181:51:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 459,
                  "nodeType": "ExpressionStatement",
                  "src": "5181:51:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 463,
                        "name": "contractAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 449,
                        "src": "5271:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 460,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "5238:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "5238:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5238:49:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 465,
                  "nodeType": "ExpressionStatement",
                  "src": "5238:49:0"
                }
              ]
            },
            "functionSelector": "3836fe6e",
            "id": 467,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 452,
                "modifierName": {
                  "id": 451,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5165:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5165:9:0"
              }
            ],
            "name": "addPermittedContract",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 449,
                  "mutability": "mutable",
                  "name": "contractAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 467,
                  "src": "5129:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 448,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5129:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5128:25:0"
            },
            "returnParameters": {
              "id": 453,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5175:0:0"
            },
            "scope": 893,
            "src": "5098:194:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 504,
              "nodeType": "Block",
              "src": "5379:171:0",
              "statements": [
                {
                  "body": {
                    "id": 502,
                    "nodeType": "Block",
                    "src": "5429:117:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 486,
                              "name": "permissionStatusForContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "5437:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 490,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 487,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 470,
                                "src": "5465:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 489,
                              "indexExpression": {
                                "id": 488,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 476,
                                "src": "5475:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5465:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5437:41:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5481:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "5437:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 493,
                        "nodeType": "ExpressionStatement",
                        "src": "5437:48:0"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 497,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 470,
                                "src": "5526:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 499,
                              "indexExpression": {
                                "id": 498,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 476,
                                "src": "5536:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5526:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 494,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "5493:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "5493:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 500,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5493:46:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 501,
                        "nodeType": "ExpressionStatement",
                        "src": "5493:46:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 479,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 476,
                      "src": "5402:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 480,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 470,
                        "src": "5406:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5406:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5402:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 503,
                  "initializationExpression": {
                    "assignments": [
                      476
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 476,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 503,
                        "src": "5390:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 475,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5390:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 478,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5399:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5390:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 484,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5424:3:0",
                      "subExpression": {
                        "id": 483,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 476,
                        "src": "5424:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 485,
                    "nodeType": "ExpressionStatement",
                    "src": "5424:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5385:161:0"
                }
              ]
            },
            "functionSelector": "dc02511e",
            "id": 505,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 473,
                "modifierName": {
                  "id": 472,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5369:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5369:9:0"
              }
            ],
            "name": "addPermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 470,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 505,
                  "src": "5328:28:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 468,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5328:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 469,
                    "nodeType": "ArrayTypeName",
                    "src": "5328:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5327:30:0"
            },
            "returnParameters": {
              "id": 474,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5379:0:0"
            },
            "scope": 893,
            "src": "5296:254:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 518,
              "nodeType": "Block",
              "src": "5628:57:0",
              "statements": [
                {
                  "expression": {
                    "id": 516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 512,
                        "name": "permissionStatusForContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5634:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 514,
                      "indexExpression": {
                        "id": 513,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 507,
                        "src": "5662:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5634:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "66616c7365",
                      "id": 515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5675:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "5634:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 517,
                  "nodeType": "ExpressionStatement",
                  "src": "5634:46:0"
                }
              ]
            },
            "functionSelector": "a98ad199",
            "id": 519,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 510,
                "modifierName": {
                  "id": 509,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5618:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5618:9:0"
              }
            ],
            "name": "removePermittedContract",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 507,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 519,
                  "src": "5588:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 506,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5588:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5587:19:0"
            },
            "returnParameters": {
              "id": 511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5628:0:0"
            },
            "scope": 893,
            "src": "5554:131:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 548,
              "nodeType": "Block",
              "src": "5775:118:0",
              "statements": [
                {
                  "body": {
                    "id": 546,
                    "nodeType": "Block",
                    "src": "5825:64:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 538,
                              "name": "permissionStatusForContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "5833:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 542,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 539,
                                "name": "addresses",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 522,
                                "src": "5861:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 541,
                              "indexExpression": {
                                "id": 540,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 528,
                                "src": "5871:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5861:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "5833:41:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "66616c7365",
                            "id": 543,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5877:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "5833:49:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 545,
                        "nodeType": "ExpressionStatement",
                        "src": "5833:49:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 531,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 528,
                      "src": "5798:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 532,
                        "name": "addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 522,
                        "src": "5802:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5802:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5798:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 547,
                  "initializationExpression": {
                    "assignments": [
                      528
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 528,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 547,
                        "src": "5786:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 527,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5786:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 530,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5795:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5786:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 536,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5820:3:0",
                      "subExpression": {
                        "id": 535,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 528,
                        "src": "5820:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 537,
                    "nodeType": "ExpressionStatement",
                    "src": "5820:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5781:108:0"
                }
              ]
            },
            "functionSelector": "0489fa70",
            "id": 549,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 525,
                "modifierName": {
                  "id": 524,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3600,
                  "src": "5765:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5765:9:0"
              }
            ],
            "name": "removePermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 522,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 549,
                  "src": "5724:28:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 520,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5724:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 521,
                    "nodeType": "ArrayTypeName",
                    "src": "5724:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5723:30:0"
            },
            "returnParameters": {
              "id": 526,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5775:0:0"
            },
            "scope": 893,
            "src": "5689:204:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 579,
              "nodeType": "Block",
              "src": "5966:196:0",
              "statements": [
                {
                  "body": {
                    "id": 575,
                    "nodeType": "Block",
                    "src": "6034:105:0",
                    "statements": [
                      {
                        "condition": {
                          "baseExpression": {
                            "id": 565,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "6046:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 569,
                          "indexExpression": {
                            "baseExpression": {
                              "id": 566,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "6074:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 568,
                            "indexExpression": {
                              "id": 567,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 555,
                              "src": "6102:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6074:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6046:59:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 574,
                        "nodeType": "IfStatement",
                        "src": "6042:91:0",
                        "trueBody": {
                          "id": 573,
                          "nodeType": "Block",
                          "src": "6107:26:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 571,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "6117:7:0",
                                "subExpression": {
                                  "id": 570,
                                  "name": "count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 552,
                                  "src": "6117:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 572,
                              "nodeType": "ExpressionStatement",
                              "src": "6117:7:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 558,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 555,
                      "src": "5989:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 559,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "5993:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5993:34:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5989:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 576,
                  "initializationExpression": {
                    "assignments": [
                      555
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 555,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "5977:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 554,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5977:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 557,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5986:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5977:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6029:3:0",
                      "subExpression": {
                        "id": 562,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 555,
                        "src": "6029:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 564,
                    "nodeType": "ExpressionStatement",
                    "src": "6029:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "5972:167:0"
                },
                {
                  "expression": {
                    "id": 577,
                    "name": "count",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 552,
                    "src": "6152:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 553,
                  "id": 578,
                  "nodeType": "Return",
                  "src": "6145:12:0"
                }
              ]
            },
            "functionSelector": "26df61f6",
            "id": 580,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "permittedContractsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 550,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5930:2:0"
            },
            "returnParameters": {
              "id": 553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 552,
                  "mutability": "mutable",
                  "name": "count",
                  "nodeType": "VariableDeclaration",
                  "scope": 580,
                  "src": "5954:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 551,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5954:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5953:12:0"
            },
            "scope": 893,
            "src": "5897:265:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 625,
              "nodeType": "Block",
              "src": "6251:296:0",
              "statements": [
                {
                  "expression": {
                    "id": 593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 586,
                      "name": "addresses",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 584,
                      "src": "6257:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 590,
                            "name": "permittedContractsCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 580,
                            "src": "6283:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6283:25:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 589,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6269:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (address[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 587,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6273:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 588,
                          "nodeType": "ArrayTypeName",
                          "src": "6273:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        }
                      },
                      "id": 592,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6269:40:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6257:52:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 594,
                  "nodeType": "ExpressionStatement",
                  "src": "6257:52:0"
                },
                {
                  "body": {
                    "id": 621,
                    "nodeType": "Block",
                    "src": "6377:143:0",
                    "statements": [
                      {
                        "condition": {
                          "baseExpression": {
                            "id": 606,
                            "name": "permissionStatusForContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "6389:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                              "typeString": "mapping(address => bool)"
                            }
                          },
                          "id": 610,
                          "indexExpression": {
                            "baseExpression": {
                              "id": 607,
                              "name": "permittedContractsAddresses",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "6417:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 609,
                            "indexExpression": {
                              "id": 608,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 596,
                              "src": "6445:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6417:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6389:59:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 620,
                        "nodeType": "IfStatement",
                        "src": "6385:129:0",
                        "trueBody": {
                          "id": 619,
                          "nodeType": "Block",
                          "src": "6450:64:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 611,
                                    "name": "addresses",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 584,
                                    "src": "6460:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 613,
                                  "indexExpression": {
                                    "id": 612,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 596,
                                    "src": "6470:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "6460:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 614,
                                    "name": "permittedContractsAddresses",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11,
                                    "src": "6475:27:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 616,
                                  "indexExpression": {
                                    "id": 615,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 596,
                                    "src": "6503:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6475:30:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "6460:45:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 618,
                              "nodeType": "ExpressionStatement",
                              "src": "6460:45:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 602,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 599,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 596,
                      "src": "6332:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 600,
                        "name": "permittedContractsAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "6336:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6336:34:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6332:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 622,
                  "initializationExpression": {
                    "assignments": [
                      596
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 596,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 622,
                        "src": "6320:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 595,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6320:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 598,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 597,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6329:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6320:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 604,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6372:3:0",
                      "subExpression": {
                        "id": 603,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 596,
                        "src": "6372:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 605,
                    "nodeType": "ExpressionStatement",
                    "src": "6372:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "6315:205:0"
                },
                {
                  "expression": {
                    "id": 623,
                    "name": "addresses",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 584,
                    "src": "6533:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "functionReturnParameters": 585,
                  "id": 624,
                  "nodeType": "Return",
                  "src": "6526:16:0"
                }
              ]
            },
            "functionSelector": "3138ee5c",
            "id": 626,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPermittedContracts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 581,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6197:2:0"
            },
            "returnParameters": {
              "id": 585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 584,
                  "mutability": "mutable",
                  "name": "addresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 626,
                  "src": "6223:26:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 582,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6223:7:0",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 583,
                    "nodeType": "ArrayTypeName",
                    "src": "6223:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6222:28:0"
            },
            "scope": 893,
            "src": "6166:381:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 767,
              "nodeType": "Block",
              "src": "6753:2227:0",
              "statements": [
                {
                  "assignments": [
                    641
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 641,
                      "mutability": "mutable",
                      "name": "countOfIntegerTypes",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "6759:24:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 640,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6759:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 645,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 643,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "6809:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      ],
                      "id": 642,
                      "name": "getCountOfIntegerTypes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 807,
                      "src": "6786:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint8_$dyn_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (uint8[] memory) pure returns (uint256)"
                      }
                    },
                    "id": 644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6786:40:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6759:67:0"
                },
                {
                  "assignments": [
                    647
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 647,
                      "mutability": "mutable",
                      "name": "objectsCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "8183:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 646,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8183:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 653,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 648,
                        "name": "recordFieldNames",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 629,
                        "src": "8203:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8203:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "expression": {
                        "id": 650,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "8229:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                          "typeString": "uint8[] calldata"
                        }
                      },
                      "id": 651,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8229:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8203:49:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8183:69:0"
                },
                {
                  "expression": {
                    "id": 662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 654,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 636,
                      "src": "8258:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 658,
                            "name": "objectsCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 647,
                            "src": "8277:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "id": 659,
                            "name": "countOfIntegerTypes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 641,
                            "src": "8292:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8277:34:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "8266:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (uint256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 655,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "8270:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 656,
                          "nodeType": "ArrayTypeName",
                          "src": "8270:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        }
                      },
                      "id": 661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8266:46:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "8258:54:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 663,
                  "nodeType": "ExpressionStatement",
                  "src": "8258:54:0"
                },
                {
                  "assignments": [
                    665
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 665,
                      "mutability": "mutable",
                      "name": "k",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "8318:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 664,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8318:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 666,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8318:6:0"
                },
                {
                  "body": {
                    "id": 761,
                    "nodeType": "Block",
                    "src": "8370:573:0",
                    "statements": [
                      {
                        "body": {
                          "id": 748,
                          "nodeType": "Block",
                          "src": "8429:424:0",
                          "statements": [
                            {
                              "assignments": [
                                689
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 689,
                                  "mutability": "mutable",
                                  "name": "r_i",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 748,
                                  "src": "8439:8:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 688,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8439:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 697,
                              "initialValue": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 696,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 693,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 690,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 668,
                                        "src": "8451:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "expression": {
                                          "id": 691,
                                          "name": "recordFieldTypes",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 632,
                                          "src": "8455:16:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                            "typeString": "uint8[] calldata"
                                          }
                                        },
                                        "id": 692,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "8455:23:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "8451:27:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 694,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8450:29:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 695,
                                  "name": "j",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 678,
                                  "src": "8482:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8450:33:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "8439:44:0"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 702,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "baseExpression": {
                                    "id": 698,
                                    "name": "recordFieldTypes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 632,
                                    "src": "8497:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                      "typeString": "uint8[] calldata"
                                    }
                                  },
                                  "id": 700,
                                  "indexExpression": {
                                    "id": 699,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 678,
                                    "src": "8514:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8497:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "hexValue": "37",
                                  "id": 701,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8520:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_7_by_1",
                                    "typeString": "int_const 7"
                                  },
                                  "value": "7"
                                },
                                "src": "8497:24:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 746,
                                "nodeType": "Block",
                                "src": "8724:121:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 741,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "baseExpression": {
                                          "id": 730,
                                          "name": "items",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 636,
                                          "src": "8736:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 732,
                                        "indexExpression": {
                                          "id": 731,
                                          "name": "k",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 665,
                                          "src": "8742:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "8736:8:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 734,
                                              "name": "recordFieldNames",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 629,
                                              "src": "8776:16:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                                "typeString": "bytes32[] calldata"
                                              }
                                            },
                                            "id": 736,
                                            "indexExpression": {
                                              "id": 735,
                                              "name": "r_i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 689,
                                              "src": "8793:3:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8776:21:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 737,
                                              "name": "recordFieldTypes",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 632,
                                              "src": "8799:16:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                                "typeString": "uint8[] calldata"
                                              }
                                            },
                                            "id": 739,
                                            "indexExpression": {
                                              "id": 738,
                                              "name": "j",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 678,
                                              "src": "8816:1:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8799:19:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 733,
                                          "name": "getCorrespondingIntegerValue",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 876,
                                          "src": "8747:28:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_uint256_$",
                                            "typeString": "function (bytes32,uint8) view returns (uint256)"
                                          }
                                        },
                                        "id": 740,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8747:72:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "8736:83:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 742,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8736:83:0"
                                  },
                                  {
                                    "expression": {
                                      "id": 744,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "8831:3:0",
                                      "subExpression": {
                                        "id": 743,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 665,
                                        "src": "8831:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 745,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8831:3:0"
                                  }
                                ]
                              },
                              "id": 747,
                              "nodeType": "IfStatement",
                              "src": "8493:352:0",
                              "trueBody": {
                                "id": 729,
                                "nodeType": "Block",
                                "src": "8523:195:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 716,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 703,
                                        "name": "stringItem",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 638,
                                        "src": "8535:10:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "arguments": [
                                                  {
                                                    "baseExpression": {
                                                      "id": 709,
                                                      "name": "recordFieldNames",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 629,
                                                      "src": "8591:16:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                                        "typeString": "bytes32[] calldata"
                                                      }
                                                    },
                                                    "id": 711,
                                                    "indexExpression": {
                                                      "id": 710,
                                                      "name": "r_i",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 689,
                                                      "src": "8608:3:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                      }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "8591:21:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_bytes32",
                                                      "typeString": "bytes32"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_bytes32",
                                                      "typeString": "bytes32"
                                                    }
                                                  ],
                                                  "id": 708,
                                                  "name": "getStringValue",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 411,
                                                  "src": "8576:14:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_string_memory_ptr_$",
                                                    "typeString": "function (bytes32) view returns (string memory)"
                                                  }
                                                },
                                                "id": 712,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8576:37:0",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 713,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8576:45:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 714,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8576:47:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          ],
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "id": 704,
                                                "name": "stringItem",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 638,
                                                "src": "8548:10:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 705,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8548:18:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 706,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8548:20:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          },
                                          "id": 707,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "concat",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2730,
                                          "src": "8548:27:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                            "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                          }
                                        },
                                        "id": 715,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8548:76:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "8535:89:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 717,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8535:89:0"
                                  },
                                  {
                                    "expression": {
                                      "id": 727,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 718,
                                        "name": "stringItem",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 638,
                                        "src": "8636:10:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "hexValue": "3636362d2d4554482d5655452d2d363636",
                                                "id": 723,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8677:19:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_131a626a750d0d3e84166089e98cfdc206b122ec893ecd03823b6c3488878516",
                                                  "typeString": "literal_string \"666--ETH-VUE--666\""
                                                },
                                                "value": "666--ETH-VUE--666"
                                              },
                                              "id": 724,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8677:27:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 725,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8677:29:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          ],
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "expression": {
                                                "id": 719,
                                                "name": "stringItem",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 638,
                                                "src": "8649:10:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              "id": 720,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "toSlice",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 1188,
                                              "src": "8649:18:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                              }
                                            },
                                            "id": 721,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8649:20:0",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                              "typeString": "struct strings.slice memory"
                                            }
                                          },
                                          "id": 722,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "concat",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2730,
                                          "src": "8649:27:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                            "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                                          }
                                        },
                                        "id": 726,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8649:58:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "8636:71:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 728,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8636:71:0"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 681,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 678,
                            "src": "8395:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "id": 682,
                              "name": "recordFieldTypes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 632,
                              "src": "8399:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                                "typeString": "uint8[] calldata"
                              }
                            },
                            "id": 683,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "8399:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8395:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 749,
                        "initializationExpression": {
                          "assignments": [
                            678
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 678,
                              "mutability": "mutable",
                              "name": "j",
                              "nodeType": "VariableDeclaration",
                              "scope": 749,
                              "src": "8383:6:0",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 677,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "8383:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 680,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8392:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "8383:10:0"
                        },
                        "loopExpression": {
                          "expression": {
                            "id": 686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "8424:3:0",
                            "subExpression": {
                              "id": 685,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 678,
                              "src": "8424:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 687,
                          "nodeType": "ExpressionStatement",
                          "src": "8424:3:0"
                        },
                        "nodeType": "ForStatement",
                        "src": "8378:475:0"
                      },
                      {
                        "expression": {
                          "id": 759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 750,
                            "name": "stringItem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 638,
                            "src": "8860:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "hexValue": "3636362d2d4554482d5655452d4c4953542d2d363636",
                                    "id": 755,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8901:24:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_f53ceb0ac8edd232b0bd9e012b34541d786fb7955d184861125ae9df2fedee1a",
                                      "typeString": "literal_string \"666--ETH-VUE-LIST--666\""
                                    },
                                    "value": "666--ETH-VUE-LIST--666"
                                  },
                                  "id": 756,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1188,
                                  "src": "8901:32:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 757,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8901:34:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              ],
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 751,
                                    "name": "stringItem",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 638,
                                    "src": "8873:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 752,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "toSlice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1188,
                                  "src": "8873:18:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1127_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (struct strings.slice memory)"
                                  }
                                },
                                "id": 753,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8873:20:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_slice_$1127_memory_ptr",
                                  "typeString": "struct strings.slice memory"
                                }
                              },
                              "id": 754,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "concat",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2730,
                              "src": "8873:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1127_memory_ptr_$_t_struct$_slice_$1127_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1127_memory_ptr_$",
                                "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
                              }
                            },
                            "id": 758,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8873:63:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "8860:76:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "id": 760,
                        "nodeType": "ExpressionStatement",
                        "src": "8860:76:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 671,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 668,
                      "src": "8347:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 672,
                      "name": "objectsCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 647,
                      "src": "8351:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8347:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 762,
                  "initializationExpression": {
                    "assignments": [
                      668
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 668,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 762,
                        "src": "8335:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 667,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8335:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 670,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8344:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8335:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8365:3:0",
                      "subExpression": {
                        "id": 674,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 668,
                        "src": "8365:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 676,
                    "nodeType": "ExpressionStatement",
                    "src": "8365:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "8330:613:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 763,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 636,
                        "src": "8957:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 764,
                        "name": "stringItem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 638,
                        "src": "8964:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "id": 765,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8956:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_string_memory_ptr_$",
                      "typeString": "tuple(uint256[] memory,string memory)"
                    }
                  },
                  "functionReturnParameters": 639,
                  "id": 766,
                  "nodeType": "Return",
                  "src": "8949:26:0"
                }
              ]
            },
            "functionSelector": "82914e5d",
            "id": 768,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getObjectData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 633,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 629,
                  "mutability": "mutable",
                  "name": "recordFieldNames",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6591:35:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 627,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "6591:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 628,
                    "nodeType": "ArrayTypeName",
                    "src": "6591:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 632,
                  "mutability": "mutable",
                  "name": "recordFieldTypes",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6628:33:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 630,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "6628:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 631,
                    "nodeType": "ArrayTypeName",
                    "src": "6628:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6590:72:0"
            },
            "returnParameters": {
              "id": 639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 636,
                  "mutability": "mutable",
                  "name": "items",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6697:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 634,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "6697:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 635,
                    "nodeType": "ArrayTypeName",
                    "src": "6697:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 638,
                  "mutability": "mutable",
                  "name": "stringItem",
                  "nodeType": "VariableDeclaration",
                  "scope": 768,
                  "src": "6722:24:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 637,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6722:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6691:59:0"
            },
            "scope": 893,
            "src": "6567:2413:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 806,
              "nodeType": "Block",
              "src": "9083:205:0",
              "statements": [
                {
                  "expression": {
                    "id": 778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 776,
                      "name": "count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 774,
                      "src": "9089:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 777,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9097:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9089:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 779,
                  "nodeType": "ExpressionStatement",
                  "src": "9089:9:0"
                },
                {
                  "body": {
                    "id": 802,
                    "nodeType": "Block",
                    "src": "9156:109:0",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 791,
                              "name": "recordFieldTypes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 771,
                              "src": "9168:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                                "typeString": "uint8[] memory"
                              }
                            },
                            "id": 793,
                            "indexExpression": {
                              "id": 792,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 781,
                              "src": "9185:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9168:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "37",
                            "id": 794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9191:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_7_by_1",
                              "typeString": "int_const 7"
                            },
                            "value": "7"
                          },
                          "src": "9168:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 801,
                        "nodeType": "IfStatement",
                        "src": "9164:95:0",
                        "trueBody": {
                          "id": 800,
                          "nodeType": "Block",
                          "src": "9194:65:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 796,
                                  "name": "count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 774,
                                  "src": "9240:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "31",
                                  "id": 797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9249:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "9240:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 799,
                              "nodeType": "ExpressionStatement",
                              "src": "9240:10:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 784,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 781,
                      "src": "9121:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 785,
                        "name": "recordFieldTypes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 771,
                        "src": "9125:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                          "typeString": "uint8[] memory"
                        }
                      },
                      "id": 786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "9125:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9121:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 803,
                  "initializationExpression": {
                    "assignments": [
                      781
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 781,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 803,
                        "src": "9109:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 780,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9109:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 783,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9118:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9109:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9151:3:0",
                      "subExpression": {
                        "id": 788,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 781,
                        "src": "9151:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 790,
                    "nodeType": "ExpressionStatement",
                    "src": "9151:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "9104:161:0"
                },
                {
                  "expression": {
                    "id": 804,
                    "name": "count",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 774,
                    "src": "9278:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 775,
                  "id": 805,
                  "nodeType": "Return",
                  "src": "9271:12:0"
                }
              ]
            },
            "functionSelector": "6d38156f",
            "id": 807,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCountOfIntegerTypes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 771,
                  "mutability": "mutable",
                  "name": "recordFieldTypes",
                  "nodeType": "VariableDeclaration",
                  "scope": 807,
                  "src": "9017:31:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 769,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "9017:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 770,
                    "nodeType": "ArrayTypeName",
                    "src": "9017:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9016:33:0"
            },
            "returnParameters": {
              "id": 775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 774,
                  "mutability": "mutable",
                  "name": "count",
                  "nodeType": "VariableDeclaration",
                  "scope": 807,
                  "src": "9071:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 773,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9071:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9070:12:0"
            },
            "scope": 893,
            "src": "8984:304:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 875,
              "nodeType": "Block",
              "src": "9399:549:0",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 816,
                      "name": "uintType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 811,
                      "src": "9508:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 817,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9520:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "9508:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 828,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 826,
                        "name": "uintType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 811,
                        "src": "9596:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "32",
                        "id": 827,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9608:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "9596:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 839,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 837,
                          "name": "uintType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 811,
                          "src": "9679:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "33",
                          "id": 838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9691:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        },
                        "src": "9679:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 845,
                            "name": "uintType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 811,
                            "src": "9755:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "34",
                            "id": 846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9767:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "9755:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 856,
                              "name": "uintType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 811,
                              "src": "9840:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 857,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9852:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "9840:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 869,
                            "nodeType": "Block",
                            "src": "9921:23:0",
                            "statements": [
                              {
                                "expression": {
                                  "hexValue": "30",
                                  "id": 867,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9936:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "functionReturnParameters": 815,
                                "id": 868,
                                "nodeType": "Return",
                                "src": "9929:8:0"
                              }
                            ]
                          },
                          "id": 870,
                          "nodeType": "IfStatement",
                          "src": "9836:108:0",
                          "trueBody": {
                            "id": 866,
                            "nodeType": "Block",
                            "src": "9855:60:0",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 862,
                                          "name": "recordFieldName",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 809,
                                          "src": "9891:15:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 861,
                                        "name": "getBytes32Value",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 203,
                                        "src": "9875:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                                          "typeString": "function (bytes32) view returns (bytes32)"
                                        }
                                      },
                                      "id": 863,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9875:32:0",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 860,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "9870:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 859,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "9870:4:0",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 864,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "9870:38:0",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "functionReturnParameters": 815,
                                "id": 865,
                                "nodeType": "Return",
                                "src": "9863:45:0"
                              }
                            ]
                          }
                        },
                        "id": 871,
                        "nodeType": "IfStatement",
                        "src": "9751:193:0",
                        "trueBody": {
                          "id": 855,
                          "nodeType": "Block",
                          "src": "9770:60:0",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "id": 851,
                                        "name": "recordFieldName",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 809,
                                        "src": "9806:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 850,
                                      "name": "getAddressValue",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 80,
                                      "src": "9790:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                        "typeString": "function (bytes32) view returns (address)"
                                      }
                                    },
                                    "id": 852,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9790:32:0",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 849,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9785:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 848,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9785:4:0",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 853,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9785:38:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "functionReturnParameters": 815,
                              "id": 854,
                              "nodeType": "Return",
                              "src": "9778:45:0"
                            }
                          ]
                        }
                      },
                      "id": 872,
                      "nodeType": "IfStatement",
                      "src": "9675:269:0",
                      "trueBody": {
                        "id": 844,
                        "nodeType": "Block",
                        "src": "9694:51:0",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 841,
                                  "name": "recordFieldName",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 809,
                                  "src": "9722:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 840,
                                "name": "getUIntValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 285,
                                "src": "9709:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                                  "typeString": "function (bytes32) view returns (uint256)"
                                }
                              },
                              "id": 842,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9709:29:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "functionReturnParameters": 815,
                            "id": 843,
                            "nodeType": "Return",
                            "src": "9702:36:0"
                          }
                        ]
                      }
                    },
                    "id": 873,
                    "nodeType": "IfStatement",
                    "src": "9592:352:0",
                    "trueBody": {
                      "id": 836,
                      "nodeType": "Block",
                      "src": "9611:58:0",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 832,
                                    "name": "recordFieldName",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 809,
                                    "src": "9645:15:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 831,
                                  "name": "getUInt8Value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 370,
                                  "src": "9631:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint8_$",
                                    "typeString": "function (bytes32) view returns (uint8)"
                                  }
                                },
                                "id": 833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9631:30:0",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 830,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9626:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 829,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "9626:4:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 834,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9626:36:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "functionReturnParameters": 815,
                          "id": 835,
                          "nodeType": "Return",
                          "src": "9619:43:0"
                        }
                      ]
                    }
                  },
                  "id": 874,
                  "nodeType": "IfStatement",
                  "src": "9504:440:0",
                  "trueBody": {
                    "id": 825,
                    "nodeType": "Block",
                    "src": "9523:63:0",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 821,
                                  "name": "recordFieldName",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 809,
                                  "src": "9562:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 820,
                                "name": "getBoolValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 121,
                                "src": "9549:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                                  "typeString": "function (bytes32) view returns (bool)"
                                }
                              },
                              "id": 822,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9549:29:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 819,
                            "name": "boolToUInt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 892,
                            "src": "9538:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$",
                              "typeString": "function (bool) pure returns (uint256)"
                            }
                          },
                          "id": 823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9538:41:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 815,
                        "id": 824,
                        "nodeType": "Return",
                        "src": "9531:48:0"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "506d7d00",
            "id": 876,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCorrespondingIntegerValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 809,
                  "mutability": "mutable",
                  "name": "recordFieldName",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9331:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9331:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 811,
                  "mutability": "mutable",
                  "name": "uintType",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9356:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 810,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9356:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9330:41:0"
            },
            "returnParameters": {
              "id": 815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 814,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 876,
                  "src": "9393:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 813,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9393:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9392:6:0"
            },
            "scope": 893,
            "src": "9292:656:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 891,
              "nodeType": "Block",
              "src": "10017:78:0",
              "statements": [
                {
                  "condition": {
                    "id": 883,
                    "name": "logicEntry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 878,
                    "src": "10027:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 889,
                    "nodeType": "Block",
                    "src": "10068:23:0",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "30",
                          "id": 887,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10083:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 882,
                        "id": 888,
                        "nodeType": "Return",
                        "src": "10076:8:0"
                      }
                    ]
                  },
                  "id": 890,
                  "nodeType": "IfStatement",
                  "src": "10023:68:0",
                  "trueBody": {
                    "id": 886,
                    "nodeType": "Block",
                    "src": "10039:23:0",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "31",
                          "id": 884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10054:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "functionReturnParameters": 882,
                        "id": 885,
                        "nodeType": "Return",
                        "src": "10047:8:0"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "ffbd400b",
            "id": 892,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "boolToUInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 878,
                  "mutability": "mutable",
                  "name": "logicEntry",
                  "nodeType": "VariableDeclaration",
                  "scope": 892,
                  "src": "9973:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 877,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9973:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9972:17:0"
            },
            "returnParameters": {
              "id": 882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 881,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 892,
                  "src": "10011:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 880,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10011:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10010:6:0"
            },
            "scope": 893,
            "src": "9952:143:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 894,
        "src": "215:9882:0"
      }
    ],
    "src": "36:10062:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.4+commit.3f05b770.Emscripten.clang"
  },
  "networks": {
    "666": {
      "events": {
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address",
              "internalType": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address",
              "internalType": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xAF2C5B8f2d68e6284f95639213A2740B0158A365",
      "transactionHash": "0x7b4b61c62e39a334a315f41d79f0cd72407eeb5abc248a487ffa8730b501775c"
    }
  },
  "schemaVersion": "3.3.2",
  "updatedAt": "2020-11-09T23:50:20.117Z",
  "networkType": "ethereum",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "destroy()": {
        "details": "Transfers the current balance to the owner and terminates the contract."
      },
      "isOwner()": {
        "returns": {
          "_0": "true if `msg.sender` is the owner of the contract."
        }
      },
      "owner()": {
        "returns": {
          "_0": "the address of the owner."
        }
      },
      "renounceOwnership()": {
        "details": "Allows the current owner to relinquish control of the contract."
      },
      "transferOwnership(address)": {
        "details": "Allows the current owner to transfer control of the contract to a newOwner.",
        "params": {
          "newOwner": "The address to transfer ownership to."
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "renounceOwnership()": {
        "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore."
      }
    },
    "version": 1
  }
}