{
  "contractName": "EthereumDIDRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "validTo",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousChange",
          "type": "uint256"
        }
      ],
      "name": "DIDAttributeChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "validTo",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousChange",
          "type": "uint256"
        }
      ],
      "name": "DIDDelegateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousChange",
          "type": "uint256"
        }
      ],
      "name": "DIDOwnerChanged",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "changed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "delegates",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "owners",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        }
      ],
      "name": "identityOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        }
      ],
      "name": "validDelegate",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "changeOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "sigV",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "sigR",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "sigS",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "changeOwnerSigned",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "validity",
          "type": "uint256"
        }
      ],
      "name": "addDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "sigV",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "sigR",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "sigS",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "validity",
          "type": "uint256"
        }
      ],
      "name": "addDelegateSigned",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        }
      ],
      "name": "revokeDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "sigV",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "sigR",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "sigS",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "delegateType",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        }
      ],
      "name": "revokeDelegateSigned",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "validity",
          "type": "uint256"
        }
      ],
      "name": "setAttribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "sigV",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "sigR",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "sigS",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "validity",
          "type": "uint256"
        }
      ],
      "name": "setAttributeSigned",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        }
      ],
      "name": "revokeAttribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "identity",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "sigV",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "sigR",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "sigS",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "value",
          "type": "bytes"
        }
      ],
      "name": "revokeAttributeSigned",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.6+commit.11564f7e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"validTo\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousChange\",\"type\":\"uint256\"}],\"name\":\"DIDAttributeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"validTo\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousChange\",\"type\":\"uint256\"}],\"name\":\"DIDDelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousChange\",\"type\":\"uint256\"}],\"name\":\"DIDOwnerChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"validity\",\"type\":\"uint256\"}],\"name\":\"addDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"validity\",\"type\":\"uint256\"}],\"name\":\"addDelegateSigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnerSigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"}],\"name\":\"identityOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"revokeAttribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"revokeAttributeSigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"revokeDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"revokeDelegateSigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"validity\",\"type\":\"uint256\"}],\"name\":\"setAttribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"validity\",\"type\":\"uint256\"}],\"name\":\"setAttributeSigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"delegateType\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"validDelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/EthereumDIDRegistry.sol\":\"EthereumDIDRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/EthereumDIDRegistry.sol\":{\"keccak256\":\"0x02a0bc96eed0c14eb455a1039f95ea20d794acc51a172490d053dafe5c2c0c2a\",\"urls\":[\"bzz-raw://7bfdc637ef9e90e5f421b0804093f63926d1989668142e354e3c8d1dd1e826aa\",\"dweb:/ipfs/QmdeFruxtQ7yPPRtnjZuDvK46rjMtZGCLjhsnsyJyYBm1R\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50612263806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806380b29f7c11610097578063a7068d6611610066578063a7068d66146102b8578063e476af5c146102d4578063f00d4b5d146102f0578063f96d0f9f1461030c576100ff565b806380b29f7c146102345780638733d4e81461025057806393072684146102805780639c2c1b2b1461029c576100ff565b8063240cf1fa116100d3578063240cf1fa1461019c578063622b2a3c146101b857806370ae92d2146101e85780637ad4b0a414610218576100ff565b8062c023da14610104578063022914a7146101205780630d44625b14610150578063123b5e9814610180575b600080fd5b61011e60048036038101906101199190611372565b61033c565b005b61013a6004803603810190610135919061124b565b61034d565b6040516101479190611c20565b60405180910390f35b61016a600480360381019061016591906112b8565b610380565b6040516101779190611dbc565b60405180910390f35b61019a600480360381019061019591906116b7565b6103b2565b005b6101b660048036038101906101b19190611464565b61045d565b005b6101d260048036038101906101cd91906112b8565b610500565b6040516101df9190611c64565b60405180910390f35b61020260048036038101906101fd919061124b565b6105c6565b60405161020f9190611dbc565b60405180910390f35b610232600480360381019061022d91906113e1565b6105de565b005b61024e600480360381019061024991906112b8565b6105f1565b005b61026a6004803603810190610265919061124b565b610602565b6040516102779190611c20565b60405180910390f35b61029a600480360381019061029591906114df565b6106ad565b005b6102b660048036038101906102b1919061156c565b610754565b005b6102d260048036038101906102cd919061130b565b6107ff565b005b6102ee60048036038101906102e9919061160e565b610812565b005b61030a60048036038101906103059190611278565b6108b9565b005b6103266004803603810190610321919061124b565b6108c8565b6040516103339190611dbc565b60405180910390f35b610348833384846108e0565b505050565b60006020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b6000601960f81b600060f81b30600360006103cc8d610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548b888888604051602001610422989796959493929190611afb565b6040516020818303038152906040528051906020012090506104538861044b8a8a8a8a87610a02565b868686610af8565b5050505050505050565b6000601960f81b600060f81b30600360006104778b610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489866040516020016104c9969594939291906119e3565b6040516020818303038152906040528051906020012090506104f8866104f28888888887610a02565b84610c25565b505050505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856040516020016105559190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490504281119150509392505050565b60036020528060005260406000206000915090505481565b6105eb8433858585610af8565b50505050565b6105fd83338484610dbe565b505050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a357809150506106a8565b829150505b919050565b6000601960f81b600060f81b30600360006106c78c610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548a878760405160200161071b9796959493929190611b94565b60405160208183030381529060405280519060200120905061074b876107448989898987610a02565b8585610dbe565b50505050505050565b6000601960f81b600060f81b306003600061076e8d610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548b8888886040516020016107c4989796959493929190611a5e565b6040516020818303038152906040528051906020012090506107f5886107ed8a8a8a8a87610a02565b868686610f97565b5050505050505050565b61080c8433858585610f97565b50505050565b6000601960f81b600060f81b306003600061082c8c610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548a8787604051602001610880979695949392919061195b565b6040516020818303038152906040528051906020012090506108b0876108a98989898987610a02565b85856108e0565b50505050505050565b6108c4823383610c25565b5050565b60026020528060005260406000206000915090505481565b83836108eb82610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461092257600080fd5b8573ffffffffffffffffffffffffffffffffffffffff167f18ab6b2ae3d64306c00ce663125f2bd680e441a098de1635bd7ad8b0d44965e485856000600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516109ae9493929190611cdf565b60405180910390a243600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008060018387878760405160008152602001604052604051610a289493929190611d77565b6020604051602081039080840390855afa158015610a4a573d6000803e3d6000fd5b505050602060405103519050610a5f87610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610ae690611fe9565b91905055508091505095945050505050565b8484610b0382610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3a57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f18ab6b2ae3d64306c00ce663125f2bd680e441a098de1635bd7ad8b0d44965e486868642610b809190611e5f565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610bd09493929190611d2b565b60405180910390a243600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b8282610c3082610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c6757600080fd5b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff167f38a5a6e68f30ed1ab45860a4afb34bcb2fc00f22ca462d249b8a8d40cda6f7a384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610d6b929190611c3b565b60405180910390a243600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b8383610dc982610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e0057600080fd5b42600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086604051602001610e539190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f5a5084339536bcab65f20799fcc58724588145ca054bd2be626174b27ba156f7858542600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610f439493929190611c9a565b60405180910390a243600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b8484610fa282610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fd957600080fd5b8242610fe59190611e5f565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876040516020016110379190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff167f5a5084339536bcab65f20799fcc58724588145ca054bd2be626174b27ba156f7868686426110e29190611e5f565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516111329493929190611c9a565b60405180910390a243600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b600061119a61119584611dfc565b611dd7565b9050828152602081018484840111156111b6576111b56120d7565b5b6111c1848285611f76565b509392505050565b6000813590506111d8816121d1565b92915050565b6000813590506111ed816121e8565b92915050565b600082601f830112611208576112076120d2565b5b8135611218848260208601611187565b91505092915050565b600081359050611230816121ff565b92915050565b60008135905061124581612216565b92915050565b600060208284031215611261576112606120e1565b5b600061126f848285016111c9565b91505092915050565b6000806040838503121561128f5761128e6120e1565b5b600061129d858286016111c9565b92505060206112ae858286016111c9565b9150509250929050565b6000806000606084860312156112d1576112d06120e1565b5b60006112df868287016111c9565b93505060206112f0868287016111de565b9250506040611301868287016111c9565b9150509250925092565b60008060008060808587031215611325576113246120e1565b5b6000611333878288016111c9565b9450506020611344878288016111de565b9350506040611355878288016111c9565b925050606061136687828801611221565b91505092959194509250565b60008060006060848603121561138b5761138a6120e1565b5b6000611399868287016111c9565b93505060206113aa868287016111de565b925050604084013567ffffffffffffffff8111156113cb576113ca6120dc565b5b6113d7868287016111f3565b9150509250925092565b600080600080608085870312156113fb576113fa6120e1565b5b6000611409878288016111c9565b945050602061141a878288016111de565b935050604085013567ffffffffffffffff81111561143b5761143a6120dc565b5b611447878288016111f3565b925050606061145887828801611221565b91505092959194509250565b600080600080600060a086880312156114805761147f6120e1565b5b600061148e888289016111c9565b955050602061149f88828901611236565b94505060406114b0888289016111de565b93505060606114c1888289016111de565b92505060806114d2888289016111c9565b9150509295509295909350565b60008060008060008060c087890312156114fc576114fb6120e1565b5b600061150a89828a016111c9565b965050602061151b89828a01611236565b955050604061152c89828a016111de565b945050606061153d89828a016111de565b935050608061154e89828a016111de565b92505060a061155f89828a016111c9565b9150509295509295509295565b600080600080600080600060e0888a03121561158b5761158a6120e1565b5b60006115998a828b016111c9565b97505060206115aa8a828b01611236565b96505060406115bb8a828b016111de565b95505060606115cc8a828b016111de565b94505060806115dd8a828b016111de565b93505060a06115ee8a828b016111c9565b92505060c06115ff8a828b01611221565b91505092959891949750929550565b60008060008060008060c0878903121561162b5761162a6120e1565b5b600061163989828a016111c9565b965050602061164a89828a01611236565b955050604061165b89828a016111de565b945050606061166c89828a016111de565b935050608061167d89828a016111de565b92505060a087013567ffffffffffffffff81111561169e5761169d6120dc565b5b6116aa89828a016111f3565b9150509295509295509295565b600080600080600080600060e0888a0312156116d6576116d56120e1565b5b60006116e48a828b016111c9565b97505060206116f58a828b01611236565b96505060406117068a828b016111de565b95505060606117178a828b016111de565b94505060806117288a828b016111de565b93505060a088013567ffffffffffffffff811115611749576117486120dc565b5b6117558a828b016111f3565b92505060c06117668a828b01611221565b91505092959891949750929550565b61177e81611eb5565b82525050565b61179561179082611eb5565b612032565b82525050565b6117a481611ec7565b82525050565b6117bb6117b682611ed3565b612044565b82525050565b6117ca81611eff565b82525050565b6117e16117dc82611eff565b61204e565b82525050565b60006117f282611e2d565b6117fc8185611e38565b935061180c818560208601611f85565b611815816120e6565b840191505092915050565b600061182b82611e2d565b6118358185611e49565b9350611845818560208601611f85565b80840191505092915050565b61186261185d82611f40565b612032565b82525050565b61187181611f64565b82525050565b6000611884600f83611e54565b915061188f82612104565b600f82019050919050565b60006118a7600b83611e54565b91506118b28261212d565b600b82019050919050565b60006118ca600b83611e54565b91506118d582612156565b600b82019050919050565b60006118ed600c83611e54565b91506118f88261217f565b600c82019050919050565b6000611910600e83611e54565b915061191b826121a8565b600e82019050919050565b61192f81611f29565b82525050565b61194661194182611f29565b61206a565b82525050565b61195581611f33565b82525050565b6000611967828a6117aa565b60018201915061197782896117aa565b6001820191506119878288611851565b6014820191506119978287611935565b6020820191506119a78286611784565b6014820191506119b682611877565b91506119c282856117d0565b6020820191506119d28284611820565b915081905098975050505050505050565b60006119ef82896117aa565b6001820191506119ff82886117aa565b600182019150611a0f8287611851565b601482019150611a1f8286611935565b602082019150611a2f8285611784565b601482019150611a3e8261189a565b9150611a4a8284611784565b601482019150819050979650505050505050565b6000611a6a828b6117aa565b600182019150611a7a828a6117aa565b600182019150611a8a8289611851565b601482019150611a9a8288611935565b602082019150611aaa8287611784565b601482019150611ab9826118bd565b9150611ac582866117d0565b602082019150611ad58285611784565b601482019150611ae58284611935565b6020820191508190509998505050505050505050565b6000611b07828b6117aa565b600182019150611b17828a6117aa565b600182019150611b278289611851565b601482019150611b378288611935565b602082019150611b478287611784565b601482019150611b56826118e0565b9150611b6282866117d0565b602082019150611b728285611820565b9150611b7e8284611935565b6020820191508190509998505050505050505050565b6000611ba0828a6117aa565b600182019150611bb082896117aa565b600182019150611bc08288611851565b601482019150611bd08287611935565b602082019150611be08286611784565b601482019150611bef82611903565b9150611bfb82856117d0565b602082019150611c0b8284611784565b60148201915081905098975050505050505050565b6000602082019050611c356000830184611775565b92915050565b6000604082019050611c506000830185611775565b611c5d6020830184611926565b9392505050565b6000602082019050611c79600083018461179b565b92915050565b6000602082019050611c9460008301846117c1565b92915050565b6000608082019050611caf60008301876117c1565b611cbc6020830186611775565b611cc96040830185611926565b611cd66060830184611926565b95945050505050565b6000608082019050611cf460008301876117c1565b8181036020830152611d0681866117e7565b9050611d156040830185611868565b611d226060830184611926565b95945050505050565b6000608082019050611d4060008301876117c1565b8181036020830152611d5281866117e7565b9050611d616040830185611926565b611d6e6060830184611926565b95945050505050565b6000608082019050611d8c60008301876117c1565b611d99602083018661194c565b611da660408301856117c1565b611db360608301846117c1565b95945050505050565b6000602082019050611dd16000830184611926565b92915050565b6000611de1611df2565b9050611ded8282611fb8565b919050565b6000604051905090565b600067ffffffffffffffff821115611e1757611e166120a3565b5b611e20826120e6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600081905092915050565b6000611e6a82611f29565b9150611e7583611f29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611eaa57611ea9612074565b5b828201905092915050565b6000611ec082611f09565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611f4b82611f52565b9050919050565b6000611f5d82611f09565b9050919050565b6000611f6f82611f29565b9050919050565b82818337600083830152505050565b60005b83811015611fa3578082015181840152602081019050611f88565b83811115611fb2576000848401525b50505050565b611fc1826120e6565b810181811067ffffffffffffffff82111715611fe057611fdf6120a3565b5b80604052505050565b6000611ff482611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561202757612026612074565b5b600182019050919050565b600061203d82612058565b9050919050565b6000819050919050565b6000819050919050565b6000612063826120f7565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f7265766f6b654174747269627574650000000000000000000000000000000000600082015250565b7f6368616e67654f776e6572000000000000000000000000000000000000000000600082015250565b7f61646444656c6567617465000000000000000000000000000000000000000000600082015250565b7f7365744174747269627574650000000000000000000000000000000000000000600082015250565b7f7265766f6b6544656c6567617465000000000000000000000000000000000000600082015250565b6121da81611eb5565b81146121e557600080fd5b50565b6121f181611eff565b81146121fc57600080fd5b50565b61220881611f29565b811461221357600080fd5b50565b61221f81611f33565b811461222a57600080fd5b5056fea2646970667358221220e437cb473c18642bdf24dc1959fc0ae2768b4dc48b39815c2ab488ef60fe3a3364736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ff5760003560e01c806380b29f7c11610097578063a7068d6611610066578063a7068d66146102b8578063e476af5c146102d4578063f00d4b5d146102f0578063f96d0f9f1461030c576100ff565b806380b29f7c146102345780638733d4e81461025057806393072684146102805780639c2c1b2b1461029c576100ff565b8063240cf1fa116100d3578063240cf1fa1461019c578063622b2a3c146101b857806370ae92d2146101e85780637ad4b0a414610218576100ff565b8062c023da14610104578063022914a7146101205780630d44625b14610150578063123b5e9814610180575b600080fd5b61011e60048036038101906101199190611372565b61033c565b005b61013a6004803603810190610135919061124b565b61034d565b6040516101479190611c20565b60405180910390f35b61016a600480360381019061016591906112b8565b610380565b6040516101779190611dbc565b60405180910390f35b61019a600480360381019061019591906116b7565b6103b2565b005b6101b660048036038101906101b19190611464565b61045d565b005b6101d260048036038101906101cd91906112b8565b610500565b6040516101df9190611c64565b60405180910390f35b61020260048036038101906101fd919061124b565b6105c6565b60405161020f9190611dbc565b60405180910390f35b610232600480360381019061022d91906113e1565b6105de565b005b61024e600480360381019061024991906112b8565b6105f1565b005b61026a6004803603810190610265919061124b565b610602565b6040516102779190611c20565b60405180910390f35b61029a600480360381019061029591906114df565b6106ad565b005b6102b660048036038101906102b1919061156c565b610754565b005b6102d260048036038101906102cd919061130b565b6107ff565b005b6102ee60048036038101906102e9919061160e565b610812565b005b61030a60048036038101906103059190611278565b6108b9565b005b6103266004803603810190610321919061124b565b6108c8565b6040516103339190611dbc565b60405180910390f35b610348833384846108e0565b505050565b60006020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b6000601960f81b600060f81b30600360006103cc8d610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548b888888604051602001610422989796959493929190611afb565b6040516020818303038152906040528051906020012090506104538861044b8a8a8a8a87610a02565b868686610af8565b5050505050505050565b6000601960f81b600060f81b30600360006104778b610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489866040516020016104c9969594939291906119e3565b6040516020818303038152906040528051906020012090506104f8866104f28888888887610a02565b84610c25565b505050505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856040516020016105559190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490504281119150509392505050565b60036020528060005260406000206000915090505481565b6105eb8433858585610af8565b50505050565b6105fd83338484610dbe565b505050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a357809150506106a8565b829150505b919050565b6000601960f81b600060f81b30600360006106c78c610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548a878760405160200161071b9796959493929190611b94565b60405160208183030381529060405280519060200120905061074b876107448989898987610a02565b8585610dbe565b50505050505050565b6000601960f81b600060f81b306003600061076e8d610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548b8888886040516020016107c4989796959493929190611a5e565b6040516020818303038152906040528051906020012090506107f5886107ed8a8a8a8a87610a02565b868686610f97565b5050505050505050565b61080c8433858585610f97565b50505050565b6000601960f81b600060f81b306003600061082c8c610602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548a8787604051602001610880979695949392919061195b565b6040516020818303038152906040528051906020012090506108b0876108a98989898987610a02565b85856108e0565b50505050505050565b6108c4823383610c25565b5050565b60026020528060005260406000206000915090505481565b83836108eb82610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461092257600080fd5b8573ffffffffffffffffffffffffffffffffffffffff167f18ab6b2ae3d64306c00ce663125f2bd680e441a098de1635bd7ad8b0d44965e485856000600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516109ae9493929190611cdf565b60405180910390a243600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60008060018387878760405160008152602001604052604051610a289493929190611d77565b6020604051602081039080840390855afa158015610a4a573d6000803e3d6000fd5b505050602060405103519050610a5f87610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610ae690611fe9565b91905055508091505095945050505050565b8484610b0382610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3a57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f18ab6b2ae3d64306c00ce663125f2bd680e441a098de1635bd7ad8b0d44965e486868642610b809190611e5f565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610bd09493929190611d2b565b60405180910390a243600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b8282610c3082610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c6757600080fd5b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff167f38a5a6e68f30ed1ab45860a4afb34bcb2fc00f22ca462d249b8a8d40cda6f7a384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610d6b929190611c3b565b60405180910390a243600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b8383610dc982610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e0057600080fd5b42600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086604051602001610e539190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f5a5084339536bcab65f20799fcc58724588145ca054bd2be626174b27ba156f7858542600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610f439493929190611c9a565b60405180910390a243600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b8484610fa282610602565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fd957600080fd5b8242610fe59190611e5f565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876040516020016110379190611c7f565b60405160208183030381529060405280519060200120815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff167f5a5084339536bcab65f20799fcc58724588145ca054bd2be626174b27ba156f7868686426110e29190611e5f565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516111329493929190611c9a565b60405180910390a243600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b600061119a61119584611dfc565b611dd7565b9050828152602081018484840111156111b6576111b56120d7565b5b6111c1848285611f76565b509392505050565b6000813590506111d8816121d1565b92915050565b6000813590506111ed816121e8565b92915050565b600082601f830112611208576112076120d2565b5b8135611218848260208601611187565b91505092915050565b600081359050611230816121ff565b92915050565b60008135905061124581612216565b92915050565b600060208284031215611261576112606120e1565b5b600061126f848285016111c9565b91505092915050565b6000806040838503121561128f5761128e6120e1565b5b600061129d858286016111c9565b92505060206112ae858286016111c9565b9150509250929050565b6000806000606084860312156112d1576112d06120e1565b5b60006112df868287016111c9565b93505060206112f0868287016111de565b9250506040611301868287016111c9565b9150509250925092565b60008060008060808587031215611325576113246120e1565b5b6000611333878288016111c9565b9450506020611344878288016111de565b9350506040611355878288016111c9565b925050606061136687828801611221565b91505092959194509250565b60008060006060848603121561138b5761138a6120e1565b5b6000611399868287016111c9565b93505060206113aa868287016111de565b925050604084013567ffffffffffffffff8111156113cb576113ca6120dc565b5b6113d7868287016111f3565b9150509250925092565b600080600080608085870312156113fb576113fa6120e1565b5b6000611409878288016111c9565b945050602061141a878288016111de565b935050604085013567ffffffffffffffff81111561143b5761143a6120dc565b5b611447878288016111f3565b925050606061145887828801611221565b91505092959194509250565b600080600080600060a086880312156114805761147f6120e1565b5b600061148e888289016111c9565b955050602061149f88828901611236565b94505060406114b0888289016111de565b93505060606114c1888289016111de565b92505060806114d2888289016111c9565b9150509295509295909350565b60008060008060008060c087890312156114fc576114fb6120e1565b5b600061150a89828a016111c9565b965050602061151b89828a01611236565b955050604061152c89828a016111de565b945050606061153d89828a016111de565b935050608061154e89828a016111de565b92505060a061155f89828a016111c9565b9150509295509295509295565b600080600080600080600060e0888a03121561158b5761158a6120e1565b5b60006115998a828b016111c9565b97505060206115aa8a828b01611236565b96505060406115bb8a828b016111de565b95505060606115cc8a828b016111de565b94505060806115dd8a828b016111de565b93505060a06115ee8a828b016111c9565b92505060c06115ff8a828b01611221565b91505092959891949750929550565b60008060008060008060c0878903121561162b5761162a6120e1565b5b600061163989828a016111c9565b965050602061164a89828a01611236565b955050604061165b89828a016111de565b945050606061166c89828a016111de565b935050608061167d89828a016111de565b92505060a087013567ffffffffffffffff81111561169e5761169d6120dc565b5b6116aa89828a016111f3565b9150509295509295509295565b600080600080600080600060e0888a0312156116d6576116d56120e1565b5b60006116e48a828b016111c9565b97505060206116f58a828b01611236565b96505060406117068a828b016111de565b95505060606117178a828b016111de565b94505060806117288a828b016111de565b93505060a088013567ffffffffffffffff811115611749576117486120dc565b5b6117558a828b016111f3565b92505060c06117668a828b01611221565b91505092959891949750929550565b61177e81611eb5565b82525050565b61179561179082611eb5565b612032565b82525050565b6117a481611ec7565b82525050565b6117bb6117b682611ed3565b612044565b82525050565b6117ca81611eff565b82525050565b6117e16117dc82611eff565b61204e565b82525050565b60006117f282611e2d565b6117fc8185611e38565b935061180c818560208601611f85565b611815816120e6565b840191505092915050565b600061182b82611e2d565b6118358185611e49565b9350611845818560208601611f85565b80840191505092915050565b61186261185d82611f40565b612032565b82525050565b61187181611f64565b82525050565b6000611884600f83611e54565b915061188f82612104565b600f82019050919050565b60006118a7600b83611e54565b91506118b28261212d565b600b82019050919050565b60006118ca600b83611e54565b91506118d582612156565b600b82019050919050565b60006118ed600c83611e54565b91506118f88261217f565b600c82019050919050565b6000611910600e83611e54565b915061191b826121a8565b600e82019050919050565b61192f81611f29565b82525050565b61194661194182611f29565b61206a565b82525050565b61195581611f33565b82525050565b6000611967828a6117aa565b60018201915061197782896117aa565b6001820191506119878288611851565b6014820191506119978287611935565b6020820191506119a78286611784565b6014820191506119b682611877565b91506119c282856117d0565b6020820191506119d28284611820565b915081905098975050505050505050565b60006119ef82896117aa565b6001820191506119ff82886117aa565b600182019150611a0f8287611851565b601482019150611a1f8286611935565b602082019150611a2f8285611784565b601482019150611a3e8261189a565b9150611a4a8284611784565b601482019150819050979650505050505050565b6000611a6a828b6117aa565b600182019150611a7a828a6117aa565b600182019150611a8a8289611851565b601482019150611a9a8288611935565b602082019150611aaa8287611784565b601482019150611ab9826118bd565b9150611ac582866117d0565b602082019150611ad58285611784565b601482019150611ae58284611935565b6020820191508190509998505050505050505050565b6000611b07828b6117aa565b600182019150611b17828a6117aa565b600182019150611b278289611851565b601482019150611b378288611935565b602082019150611b478287611784565b601482019150611b56826118e0565b9150611b6282866117d0565b602082019150611b728285611820565b9150611b7e8284611935565b6020820191508190509998505050505050505050565b6000611ba0828a6117aa565b600182019150611bb082896117aa565b600182019150611bc08288611851565b601482019150611bd08287611935565b602082019150611be08286611784565b601482019150611bef82611903565b9150611bfb82856117d0565b602082019150611c0b8284611784565b60148201915081905098975050505050505050565b6000602082019050611c356000830184611775565b92915050565b6000604082019050611c506000830185611775565b611c5d6020830184611926565b9392505050565b6000602082019050611c79600083018461179b565b92915050565b6000602082019050611c9460008301846117c1565b92915050565b6000608082019050611caf60008301876117c1565b611cbc6020830186611775565b611cc96040830185611926565b611cd66060830184611926565b95945050505050565b6000608082019050611cf460008301876117c1565b8181036020830152611d0681866117e7565b9050611d156040830185611868565b611d226060830184611926565b95945050505050565b6000608082019050611d4060008301876117c1565b8181036020830152611d5281866117e7565b9050611d616040830185611926565b611d6e6060830184611926565b95945050505050565b6000608082019050611d8c60008301876117c1565b611d99602083018661194c565b611da660408301856117c1565b611db360608301846117c1565b95945050505050565b6000602082019050611dd16000830184611926565b92915050565b6000611de1611df2565b9050611ded8282611fb8565b919050565b6000604051905090565b600067ffffffffffffffff821115611e1757611e166120a3565b5b611e20826120e6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600081905092915050565b6000611e6a82611f29565b9150611e7583611f29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611eaa57611ea9612074565b5b828201905092915050565b6000611ec082611f09565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611f4b82611f52565b9050919050565b6000611f5d82611f09565b9050919050565b6000611f6f82611f29565b9050919050565b82818337600083830152505050565b60005b83811015611fa3578082015181840152602081019050611f88565b83811115611fb2576000848401525b50505050565b611fc1826120e6565b810181811067ffffffffffffffff82111715611fe057611fdf6120a3565b5b80604052505050565b6000611ff482611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561202757612026612074565b5b600182019050919050565b600061203d82612058565b9050919050565b6000819050919050565b6000819050919050565b6000612063826120f7565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f7265766f6b654174747269627574650000000000000000000000000000000000600082015250565b7f6368616e67654f776e6572000000000000000000000000000000000000000000600082015250565b7f61646444656c6567617465000000000000000000000000000000000000000000600082015250565b7f7365744174747269627574650000000000000000000000000000000000000000600082015250565b7f7265766f6b6544656c6567617465000000000000000000000000000000000000600082015250565b6121da81611eb5565b81146121e557600080fd5b50565b6121f181611eff565b81146121fc57600080fd5b50565b61220881611f29565b811461221357600080fd5b50565b61221f81611f33565b811461222a57600080fd5b5056fea2646970667358221220e437cb473c18642bdf24dc1959fc0ae2768b4dc48b39815c2ab488ef60fe3a3364736f6c63430008060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:32960:1",
        "statements": [
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "90:327:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "100:74:1",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "166:6:1"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_t_bytes_memory_ptr",
                          "nodeType": "YulIdentifier",
                          "src": "125:40:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "125:48:1"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "109:15:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "109:65:1"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "100:5:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "190:5:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "197:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "183:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "183:21:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "183:21:1"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "213:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "array",
                        "nodeType": "YulIdentifier",
                        "src": "228:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "235:4:1",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "224:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "224:16:1"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "217:3:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "278:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
                            "nodeType": "YulIdentifier",
                            "src": "280:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "280:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "280:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "259:3:1"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "264:6:1"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "255:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "255:16:1"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "273:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "252:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "252:25:1"
                  },
                  "nodeType": "YulIf",
                  "src": "249:2:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "394:3:1"
                      },
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "399:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "404:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "copy_calldata_to_memory",
                      "nodeType": "YulIdentifier",
                      "src": "370:23:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "370:41:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "370:41:1"
                }
              ]
            },
            "name": "abi_decode_available_length_t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "63:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "68:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "76:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "84:5:1",
                "type": ""
              }
            ],
            "src": "7:410:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "475:87:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "485:29:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "507:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "494:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "494:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "485:5:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "550:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_t_address",
                      "nodeType": "YulIdentifier",
                      "src": "523:26:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "523:33:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "523:33:1"
                }
              ]
            },
            "name": "abi_decode_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "453:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "461:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "469:5:1",
                "type": ""
              }
            ],
            "src": "423:139:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "620:87:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "630:29:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "652:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "639:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "639:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "630:5:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "695:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_t_bytes32",
                      "nodeType": "YulIdentifier",
                      "src": "668:26:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "668:33:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "668:33:1"
                }
              ]
            },
            "name": "abi_decode_t_bytes32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "598:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "606:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "614:5:1",
                "type": ""
              }
            ],
            "src": "568:139:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "787:277:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "836:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
                            "nodeType": "YulIdentifier",
                            "src": "838:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "838:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "838:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "815:6:1"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "823:4:1",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "811:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "811:17:1"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "830:3:1"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "807:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "807:27:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "800:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "800:35:1"
                  },
                  "nodeType": "YulIf",
                  "src": "797:2:1"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "928:34:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "955:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "942:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "942:20:1"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "932:6:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "971:87:1",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "1031:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1039:4:1",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1027:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1027:17:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1046:6:1"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "1054:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_t_bytes_memory_ptr",
                      "nodeType": "YulIdentifier",
                      "src": "980:46:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "980:78:1"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "971:5:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "765:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "773:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "781:5:1",
                "type": ""
              }
            ],
            "src": "726:338:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1122:87:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1132:29:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "1154:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1141:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1141:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "1132:5:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1197:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_t_uint256",
                      "nodeType": "YulIdentifier",
                      "src": "1170:26:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1170:33:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1170:33:1"
                }
              ]
            },
            "name": "abi_decode_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "1100:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1108:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1116:5:1",
                "type": ""
              }
            ],
            "src": "1070:139:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1265:85:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1275:29:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "1297:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1284:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1284:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "1275:5:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1338:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_t_uint8",
                      "nodeType": "YulIdentifier",
                      "src": "1313:24:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1313:31:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1313:31:1"
                }
              ]
            },
            "name": "abi_decode_t_uint8",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "1243:6:1",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1251:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1259:5:1",
                "type": ""
              }
            ],
            "src": "1215:135:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1422:263:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1468:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "1470:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1470:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1470:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1443:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1452:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1439:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1439:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1464:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1435:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1435:32:1"
                  },
                  "nodeType": "YulIf",
                  "src": "1432:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "1561:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1576:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1590:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "1580:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1605:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1640:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "1651:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1636:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1636:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1660:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "1615:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1615:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "1605:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1392:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1403:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1415:6:1",
                "type": ""
              }
            ],
            "src": "1356:329:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1774:391:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1820:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "1822:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1822:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1822:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1795:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1804:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1791:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1791:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1816:2:1",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1787:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1787:32:1"
                  },
                  "nodeType": "YulIf",
                  "src": "1784:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "1913:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1928:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1942:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "1932:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1957:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1992:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2003:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1988:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1988:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2012:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "1967:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1967:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "1957:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "2040:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2055:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2069:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "2059:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2085:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2120:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2131:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2116:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2116:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2140:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "2095:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2095:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "2085:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1736:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1747:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1759:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "1767:6:1",
                "type": ""
              }
            ],
            "src": "1691:474:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2271:519:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2317:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "2319:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2319:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2319:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2292:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2301:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2288:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2288:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2313:2:1",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2284:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2284:32:1"
                  },
                  "nodeType": "YulIf",
                  "src": "2281:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "2410:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2425:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2439:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "2429:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2454:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2489:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2500:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2485:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2485:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2509:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "2464:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2464:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "2454:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "2537:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2552:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2566:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "2556:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2582:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2617:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2628:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2613:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2613:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2637:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "2592:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2592:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "2582:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "2665:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2680:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2694:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "2684:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2710:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2745:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2756:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2741:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2741:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2765:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "2720:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2720:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "2710:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes32t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2225:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2236:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2248:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2256:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2264:6:1",
                "type": ""
              }
            ],
            "src": "2171:619:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2913:648:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2960:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "2962:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2962:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2962:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2934:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2943:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2930:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2930:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2955:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2926:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2926:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "2923:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3053:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3068:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3082:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3072:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3097:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3132:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3143:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3128:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3128:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3152:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "3107:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3107:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "3097:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3180:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3195:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3209:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3199:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3225:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3260:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3271:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3256:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3256:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3280:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "3235:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3235:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "3225:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3308:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3323:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3337:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3327:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3353:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3388:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3399:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3384:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3384:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3408:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "3363:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3363:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "3353:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3436:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3451:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3465:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3455:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3481:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3516:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3527:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3512:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3512:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3536:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "3491:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3491:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "3481:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes32t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2859:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2870:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2882:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2890:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2898:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "2906:6:1",
                "type": ""
              }
            ],
            "src": "2796:765:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3676:688:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3722:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "3724:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3724:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3724:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3697:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3706:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3693:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3693:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3718:2:1",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3689:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3689:32:1"
                  },
                  "nodeType": "YulIf",
                  "src": "3686:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3815:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3830:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3844:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3834:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3859:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3894:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3905:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3890:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3890:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3914:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "3869:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3869:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "3859:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "3942:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3957:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3971:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "3961:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3987:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4022:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4033:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4018:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4018:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4042:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "3997:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3997:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "3987:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "4070:287:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4085:46:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4116:9:1"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4127:2:1",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4112:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4112:18:1"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4099:12:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4099:32:1"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "4089:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4178:83:1",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
                                "nodeType": "YulIdentifier",
                                "src": "4180:77:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4180:79:1"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4180:79:1"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4150:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4158:18:1",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4147:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4147:30:1"
                      },
                      "nodeType": "YulIf",
                      "src": "4144:2:1"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4275:72:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4319:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4330:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4315:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4315:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4339:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes_memory_ptr",
                          "nodeType": "YulIdentifier",
                          "src": "4285:29:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4285:62:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "4275:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes32t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3630:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3641:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3653:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3661:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3669:6:1",
                "type": ""
              }
            ],
            "src": "3567:797:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4496:817:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4543:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "4545:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4545:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4545:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4517:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4526:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4513:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4513:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4538:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4509:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4509:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "4506:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "4636:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4651:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4665:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "4655:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4680:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4715:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4726:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4711:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4711:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4735:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "4690:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4690:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "4680:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "4763:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4778:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4792:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "4782:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4808:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4843:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4854:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4839:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4839:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4863:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "4818:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4818:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "4808:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "4891:287:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4906:46:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4937:9:1"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4948:2:1",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4933:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4933:18:1"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4920:12:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4920:32:1"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "4910:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4999:83:1",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
                                "nodeType": "YulIdentifier",
                                "src": "5001:77:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5001:79:1"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "5001:79:1"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4971:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4979:18:1",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4968:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4968:30:1"
                      },
                      "nodeType": "YulIf",
                      "src": "4965:2:1"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5096:72:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5140:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5151:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5136:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5136:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5160:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes_memory_ptr",
                          "nodeType": "YulIdentifier",
                          "src": "5106:29:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5106:62:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "5096:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "5188:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5203:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5217:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5207:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5233:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5268:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5279:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5264:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5264:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5288:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "5243:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5243:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "5233:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bytes32t_bytes_memory_ptrt_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4442:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4453:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4465:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4473:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4481:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4489:6:1",
                "type": ""
              }
            ],
            "src": "4370:943:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5451:775:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5498:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "5500:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5500:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5500:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5472:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5481:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5468:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5468:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5493:3:1",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5464:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5464:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "5461:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "5591:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5606:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5620:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5610:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5635:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5670:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5681:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5666:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5666:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5690:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "5645:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5645:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "5635:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "5718:116:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5733:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5747:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5737:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5763:61:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5796:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5807:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5792:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5792:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5816:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "5773:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5773:51:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "5763:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "5844:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5859:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5873:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5863:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5889:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5924:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5935:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5920:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5920:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5944:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "5899:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5899:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "5889:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "5972:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5987:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6001:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5991:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6017:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6052:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6063:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6048:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6048:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6072:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "6027:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6027:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "6017:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "6100:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "6115:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6129:3:1",
                        "type": "",
                        "value": "128"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "6119:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6146:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6181:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6192:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6177:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6177:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6201:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "6156:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6156:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "6146:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5389:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5400:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5412:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5420:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5428:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "5436:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "5444:6:1",
                "type": ""
              }
            ],
            "src": "5319:907:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6381:904:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6428:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "6430:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6430:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6430:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6402:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6411:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6398:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6398:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6423:3:1",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6394:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6394:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "6391:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "6521:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "6536:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6550:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "6540:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6565:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6600:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6611:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6596:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6596:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6620:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "6575:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6575:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "6565:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "6648:116:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "6663:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6677:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "6667:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6693:61:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6726:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6737:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6722:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6722:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6746:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "6703:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6703:51:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "6693:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "6774:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "6789:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6803:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "6793:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6819:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6854:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6865:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6850:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6850:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6874:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "6829:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6829:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "6819:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "6902:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "6917:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6931:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "6921:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "6947:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "6982:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6993:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6978:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6978:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7002:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "6957:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6957:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "6947:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7030:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7045:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7059:3:1",
                        "type": "",
                        "value": "128"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7049:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "7076:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "7111:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7122:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7107:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7107:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7131:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "7086:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7086:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "7076:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7159:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7174:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7188:3:1",
                        "type": "",
                        "value": "160"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7178:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "7205:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "7240:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7251:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7236:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7236:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7260:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "7215:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7215:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "7205:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6311:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "6322:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "6334:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "6342:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "6350:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "6358:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "6366:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "6374:6:1",
                "type": ""
              }
            ],
            "src": "6232:1053:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7457:1033:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7504:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "7506:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7506:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7506:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7478:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7487:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "7474:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7474:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7499:3:1",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "7470:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7470:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "7467:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7597:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7612:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7626:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7616:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "7641:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "7676:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7687:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7672:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7672:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7696:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "7651:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7651:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "7641:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7724:116:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7739:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7753:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7743:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "7769:61:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "7802:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7813:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7798:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7798:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7822:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "7779:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7779:51:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "7769:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7850:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7865:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7879:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7869:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "7895:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "7930:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7941:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7926:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7926:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7950:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "7905:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7905:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "7895:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "7978:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "7993:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8007:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "7997:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8023:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8058:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "8069:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8054:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8054:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8078:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "8033:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8033:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "8023:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "8106:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "8121:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8135:3:1",
                        "type": "",
                        "value": "128"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "8125:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8152:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8187:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "8198:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8183:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8183:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8207:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "8162:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8162:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "8152:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "8235:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "8250:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8264:3:1",
                        "type": "",
                        "value": "160"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "8254:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8281:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8316:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "8327:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8312:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8312:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8336:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "8291:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8291:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "8281:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "8364:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "8379:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8393:3:1",
                        "type": "",
                        "value": "192"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "8383:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8410:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8445:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "8456:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8441:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8441:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8465:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "8420:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8420:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value6",
                          "nodeType": "YulIdentifier",
                          "src": "8410:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "7379:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "7390:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7402:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "7410:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "7418:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "7426:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "7434:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "7442:6:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "7450:6:1",
                "type": ""
              }
            ],
            "src": "7291:1199:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8654:1073:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8701:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "8703:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8703:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8703:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8675:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8684:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8671:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8671:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8696:3:1",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8667:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8667:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "8664:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "8794:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "8809:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8823:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "8813:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8838:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8873:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "8884:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8869:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8869:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8893:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "8848:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8848:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "8838:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "8921:116:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "8936:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8950:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "8940:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "8966:61:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8999:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "9010:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8995:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8995:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9019:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "8976:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8976:51:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "8966:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "9047:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "9062:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9076:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "9066:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "9092:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "9127:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "9138:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "9123:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9123:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9147:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "9102:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9102:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "9092:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "9175:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "9190:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9204:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "9194:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "9220:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "9255:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "9266:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "9251:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9251:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9275:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "9230:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9230:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "9220:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "9303:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "9318:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9332:3:1",
                        "type": "",
                        "value": "128"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "9322:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "9349:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "9384:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "9395:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "9380:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9380:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9404:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "9359:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9359:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "9349:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "9432:288:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "9447:47:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "9478:9:1"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "9489:3:1",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "9474:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9474:19:1"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "9461:12:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9461:33:1"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "9451:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "9541:83:1",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
                                "nodeType": "YulIdentifier",
                                "src": "9543:77:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "9543:79:1"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "9543:79:1"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9513:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9521:18:1",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "9510:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9510:30:1"
                      },
                      "nodeType": "YulIf",
                      "src": "9507:2:1"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "9638:72:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "9682:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "9693:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "9678:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "9678:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9702:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes_memory_ptr",
                          "nodeType": "YulIdentifier",
                          "src": "9648:29:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9648:62:1"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "9638:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8584:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8595:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8607:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8615:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8623:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8631:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8639:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "8647:6:1",
                "type": ""
              }
            ],
            "src": "8496:1231:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9908:1202:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9955:83:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
                            "nodeType": "YulIdentifier",
                            "src": "9957:77:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9957:79:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9957:79:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9929:7:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9938:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9925:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9925:23:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9950:3:1",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9921:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9921:33:1"
                  },
                  "nodeType": "YulIf",
                  "src": "9918:2:1"
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10048:117:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10063:15:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10077:1:1",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10067:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10092:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10127:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10138:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10123:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10123:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10147:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "10102:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10102:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "10092:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10175:116:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10190:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10204:2:1",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10194:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10220:61:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10253:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10264:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10249:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10249:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10273:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "10230:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10230:51:1"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "10220:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10301:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10316:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10330:2:1",
                        "type": "",
                        "value": "64"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10320:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10346:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10381:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10392:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10377:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10377:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10401:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "10356:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10356:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "10346:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10429:118:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10444:16:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10458:2:1",
                        "type": "",
                        "value": "96"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10448:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10474:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10509:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10520:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10505:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10505:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10529:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "10484:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10484:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "10474:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10557:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10572:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10586:3:1",
                        "type": "",
                        "value": "128"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10576:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10603:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10638:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10649:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10634:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10634:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10658:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "10613:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10613:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "10603:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10686:288:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10701:47:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10732:9:1"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "10743:3:1",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10728:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10728:19:1"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "10715:12:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10715:33:1"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "10705:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "10795:83:1",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
                                "nodeType": "YulIdentifier",
                                "src": "10797:77:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10797:79:1"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "10797:79:1"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "10767:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10775:18:1",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "10764:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10764:30:1"
                      },
                      "nodeType": "YulIf",
                      "src": "10761:2:1"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "10892:72:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "10936:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "10947:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "10932:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "10932:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10956:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_bytes_memory_ptr",
                          "nodeType": "YulIdentifier",
                          "src": "10902:29:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10902:62:1"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "10892:6:1"
                        }
                      ]
                    }
                  ]
                },
                {
                  "nodeType": "YulBlock",
                  "src": "10984:119:1",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "10999:17:1",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11013:3:1",
                        "type": "",
                        "value": "192"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "11003:6:1",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "11030:63:1",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "11065:9:1"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "11076:6:1"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "11061:3:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11061:22:1"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11085:7:1"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "11040:20:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11040:53:1"
                      },
                      "variableNames": [
                        {
                          "name": "value6",
                          "nodeType": "YulIdentifier",
                          "src": "11030:6:1"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_bytes_memory_ptrt_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9830:9:1",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9841:7:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9853:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9861:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9869:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "9877:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "9885:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "9893:6:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "9901:6:1",
                "type": ""
              }
            ],
            "src": "9733:1377:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11181:53:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11198:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "11221:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "cleanup_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "11203:17:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11203:24:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11191:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11191:37:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11191:37:1"
                }
              ]
            },
            "name": "abi_encode_t_address_to_t_address_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11169:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11176:3:1",
                "type": ""
              }
            ],
            "src": "11116:118:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11323:74:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11340:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "11383:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_address",
                              "nodeType": "YulIdentifier",
                              "src": "11365:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11365:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "leftAlign_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "11345:19:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11345:45:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11333:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11333:58:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11333:58:1"
                }
              ]
            },
            "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11311:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11318:3:1",
                "type": ""
              }
            ],
            "src": "11240:157:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11462:50:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11479:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "11499:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "cleanup_t_bool",
                          "nodeType": "YulIdentifier",
                          "src": "11484:14:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11484:21:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11472:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11472:34:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11472:34:1"
                }
              ]
            },
            "name": "abi_encode_t_bool_to_t_bool_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11450:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11457:3:1",
                "type": ""
              }
            ],
            "src": "11403:109:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11599:72:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11616:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "11657:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_bytes1",
                              "nodeType": "YulIdentifier",
                              "src": "11640:16:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11640:23:1"
                          }
                        ],
                        "functionName": {
                          "name": "leftAlign_t_bytes1",
                          "nodeType": "YulIdentifier",
                          "src": "11621:18:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11621:43:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11609:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11609:56:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11609:56:1"
                }
              ]
            },
            "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11587:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11594:3:1",
                "type": ""
              }
            ],
            "src": "11518:153:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11742:53:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11759:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "11782:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "cleanup_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "11764:17:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11764:24:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11752:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11752:37:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11752:37:1"
                }
              ]
            },
            "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11730:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11737:3:1",
                "type": ""
              }
            ],
            "src": "11677:118:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11884:74:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "11901:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "11944:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_bytes32",
                              "nodeType": "YulIdentifier",
                              "src": "11926:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11926:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "leftAlign_t_bytes32",
                          "nodeType": "YulIdentifier",
                          "src": "11906:19:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11906:45:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "11894:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11894:58:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11894:58:1"
                }
              ]
            },
            "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "11872:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "11879:3:1",
                "type": ""
              }
            ],
            "src": "11801:157:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12054:270:1",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12064:52:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "12110:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "array_length_t_bytes_memory_ptr",
                      "nodeType": "YulIdentifier",
                      "src": "12078:31:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12078:38:1"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "12068:6:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12125:77:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12190:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12195:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "12132:57:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12132:70:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "12125:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "12237:5:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12244:4:1",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12233:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12233:16:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12251:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12256:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory",
                      "nodeType": "YulIdentifier",
                      "src": "12211:21:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12211:52:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12211:52:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12272:46:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12283:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "12310:6:1"
                          }
                        ],
                        "functionName": {
                          "name": "round_up_to_mul_of_32",
                          "nodeType": "YulIdentifier",
                          "src": "12288:21:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12288:29:1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12279:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12279:39:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "12272:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12035:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "12042:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "12050:3:1",
                "type": ""
              }
            ],
            "src": "11964:360:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12438:265:1",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12448:52:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "12494:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "array_length_t_bytes_memory_ptr",
                      "nodeType": "YulIdentifier",
                      "src": "12462:31:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12462:38:1"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "12452:6:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12509:95:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12592:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12597:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "12516:75:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12516:88:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "12509:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "12639:5:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12646:4:1",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12635:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12635:16:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12653:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12658:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory",
                      "nodeType": "YulIdentifier",
                      "src": "12613:21:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12613:52:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12613:52:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12674:23:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12685:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "12690:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12681:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12681:16:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "12674:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12419:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "12426:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "12434:3:1",
                "type": ""
              }
            ],
            "src": "12330:373:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12819:114:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "12836:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "12919:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "convert_t_contract$_EthereumDIDRegistry_$750_to_t_address",
                              "nodeType": "YulIdentifier",
                              "src": "12861:57:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "12861:64:1"
                          }
                        ],
                        "functionName": {
                          "name": "leftAlign_t_address",
                          "nodeType": "YulIdentifier",
                          "src": "12841:19:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12841:85:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12829:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12829:98:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12829:98:1"
                }
              ]
            },
            "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12807:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "12814:3:1",
                "type": ""
              }
            ],
            "src": "12709:224:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13012:74:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13029:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "13073:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "convert_t_rational_0_by_1_to_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "13034:38:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13034:45:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13022:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13022:58:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13022:58:1"
                }
              ]
            },
            "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "13000:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "13007:3:1",
                "type": ""
              }
            ],
            "src": "12939:147:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13256:238:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "13266:92:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13350:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13355:2:1",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "13273:76:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13273:85:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "13266:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13456:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "store_literal_in_memory_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
                      "nodeType": "YulIdentifier",
                      "src": "13367:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13367:93:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13367:93:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13469:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13480:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13485:2:1",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13476:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13476:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "13469:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "13244:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "13252:3:1",
                "type": ""
              }
            ],
            "src": "13092:402:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13664:238:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "13674:92:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13758:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13763:2:1",
                        "type": "",
                        "value": "11"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "13681:76:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13681:85:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "13674:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13864:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "store_literal_in_memory_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
                      "nodeType": "YulIdentifier",
                      "src": "13775:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13775:93:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13775:93:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13877:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "13888:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13893:2:1",
                        "type": "",
                        "value": "11"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13884:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13884:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "13877:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "13652:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "13660:3:1",
                "type": ""
              }
            ],
            "src": "13500:402:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14072:238:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "14082:92:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14166:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14171:2:1",
                        "type": "",
                        "value": "11"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "14089:76:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14089:85:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "14082:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14272:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "store_literal_in_memory_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
                      "nodeType": "YulIdentifier",
                      "src": "14183:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14183:93:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14183:93:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14285:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14296:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14301:2:1",
                        "type": "",
                        "value": "11"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14292:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14292:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "14285:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "14060:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "14068:3:1",
                "type": ""
              }
            ],
            "src": "13908:402:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14480:238:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "14490:92:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14574:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14579:2:1",
                        "type": "",
                        "value": "12"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "14497:76:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14497:85:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "14490:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14680:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "store_literal_in_memory_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
                      "nodeType": "YulIdentifier",
                      "src": "14591:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14591:93:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14591:93:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14693:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14704:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14709:2:1",
                        "type": "",
                        "value": "12"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14700:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14700:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "14693:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "14468:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "14476:3:1",
                "type": ""
              }
            ],
            "src": "14316:402:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14888:238:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "14898:92:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "14982:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14987:2:1",
                        "type": "",
                        "value": "14"
                      }
                    ],
                    "functionName": {
                      "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "14905:76:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14905:85:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "14898:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15088:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "store_literal_in_memory_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
                      "nodeType": "YulIdentifier",
                      "src": "14999:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14999:93:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14999:93:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15101:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15112:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15117:2:1",
                        "type": "",
                        "value": "14"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "15108:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15108:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "15101:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "14876:3:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "14884:3:1",
                "type": ""
              }
            ],
            "src": "14724:402:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15197:53:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15214:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "15237:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "cleanup_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "15219:17:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15219:24:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15207:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15207:37:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15207:37:1"
                }
              ]
            },
            "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "15185:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "15192:3:1",
                "type": ""
              }
            ],
            "src": "15132:118:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15339:74:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15356:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "15399:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_uint256",
                              "nodeType": "YulIdentifier",
                              "src": "15381:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "15381:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "leftAlign_t_uint256",
                          "nodeType": "YulIdentifier",
                          "src": "15361:19:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15361:45:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15349:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15349:58:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15349:58:1"
                }
              ]
            },
            "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "15327:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "15334:3:1",
                "type": ""
              }
            ],
            "src": "15256:157:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15480:51:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "15497:3:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "15518:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "cleanup_t_uint8",
                          "nodeType": "YulIdentifier",
                          "src": "15502:15:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15502:22:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "15490:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15490:35:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15490:35:1"
                }
              ]
            },
            "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "15468:5:1",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "15475:3:1",
                "type": ""
              }
            ],
            "src": "15419:112:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15963:1001:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "16034:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16043:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "15974:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15974:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "15974:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16056:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16067:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16072:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16063:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16063:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16056:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "16144:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16153:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16084:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16084:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16084:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16166:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16177:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16182:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16173:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16173:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16166:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "16283:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16292:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16194:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16194:102:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16194:102:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16305:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16316:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16321:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16312:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16312:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16305:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "16396:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16405:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16334:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16334:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16334:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16418:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16429:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16434:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16425:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16425:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16418:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "16509:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16518:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16447:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16447:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16447:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16531:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16542:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16547:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16538:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16538:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16531:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16560:155:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16711:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16567:142:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16567:148:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16560:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "16787:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16796:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16725:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16725:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16725:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16809:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16820:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16825:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "16816:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16816:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16809:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16838:100:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value6",
                        "nodeType": "YulIdentifier",
                        "src": "16925:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "16934:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "16845:79:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16845:93:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "16838:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16948:10:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "16955:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "16948:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_t_bytes32_t_bytes_memory_ptr__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "15894:3:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "15900:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "15908:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "15916:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15924:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15932:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15940:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15948:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "15959:3:1",
                "type": ""
              }
            ],
            "src": "15537:1427:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17350:891:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "17421:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17430:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17361:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17361:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17361:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17443:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17454:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17459:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17450:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17450:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17443:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "17531:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17540:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17471:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17471:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17471:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17553:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17564:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17569:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17560:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17560:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17553:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "17670:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17679:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17581:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17581:102:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17581:102:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17692:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17703:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17708:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17699:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17699:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17692:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "17783:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17792:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17721:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17721:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17721:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17805:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17816:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17821:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17812:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17812:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17805:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "17896:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17905:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17834:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17834:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17834:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17918:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "17929:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17934:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "17925:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17925:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17918:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17947:155:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18098:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "17954:142:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17954:148:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "17947:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "18174:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18183:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "18112:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18112:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18112:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18196:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18207:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18212:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18203:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18203:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "18196:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18225:10:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "18232:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "18225:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_t_address__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "17289:3:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "17295:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "17303:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "17311:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17319:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17327:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17335:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "17346:3:1",
                "type": ""
              }
            ],
            "src": "16970:1271:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18683:1117:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "18754:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18763:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "18694:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18694:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18694:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18776:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18787:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18792:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18783:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18783:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "18776:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "18864:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18873:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "18804:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18804:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18804:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18886:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "18897:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18902:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "18893:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18893:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "18886:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "19003:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19012:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "18914:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18914:102:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18914:102:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19025:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19036:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19041:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19032:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19032:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19025:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "19116:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19125:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19054:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19054:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19054:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19138:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19149:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19154:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19145:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19145:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19138:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "19229:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19238:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19167:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19167:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19167:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19251:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19262:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19267:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19258:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19258:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19251:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19280:155:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19431:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19287:142:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19287:148:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19280:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "19507:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19516:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19445:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19445:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19445:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19529:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19540:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19545:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19536:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19536:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19529:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value6",
                        "nodeType": "YulIdentifier",
                        "src": "19620:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19629:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19558:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19558:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19558:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19642:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19653:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19658:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19649:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19649:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19642:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value7",
                        "nodeType": "YulIdentifier",
                        "src": "19733:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19742:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "19671:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19671:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19671:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19755:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "19766:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19771:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "19762:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19762:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "19755:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19784:10:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "19791:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "19784:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_t_bytes32_t_address_t_uint256__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_address_t_uint256__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "18606:3:1",
                "type": ""
              },
              {
                "name": "value7",
                "nodeType": "YulTypedName",
                "src": "18612:6:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "18620:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "18628:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "18636:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "18644:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "18652:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18660:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18668:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "18679:3:1",
                "type": ""
              }
            ],
            "src": "18247:1553:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20260:1114:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20331:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20340:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20271:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20271:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20271:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20353:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20364:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20369:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20360:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20360:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20353:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "20441:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20450:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20381:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20381:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20381:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20463:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20474:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20479:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20470:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20470:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20463:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "20580:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20589:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20491:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20491:102:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20491:102:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20602:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20613:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20618:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20609:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20609:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20602:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "20693:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20702:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20631:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20631:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20631:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20715:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20726:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20731:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20722:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20722:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20715:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "20806:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20815:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20744:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20744:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20744:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20828:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "20839:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20844:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "20835:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20835:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20828:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20857:155:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21008:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "20864:142:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20864:148:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "20857:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "21084:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21093:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "21022:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21022:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21022:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21106:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21117:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21122:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21113:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21113:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "21106:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21135:100:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value6",
                        "nodeType": "YulIdentifier",
                        "src": "21222:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21231:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "21142:79:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21142:93:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "21135:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value7",
                        "nodeType": "YulIdentifier",
                        "src": "21307:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21316:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "21245:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21245:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21245:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21329:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21340:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21345:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21336:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21336:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "21329:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21358:10:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "21365:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "21358:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "20183:3:1",
                "type": ""
              },
              {
                "name": "value7",
                "nodeType": "YulTypedName",
                "src": "20189:6:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "20197:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "20205:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "20213:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "20221:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "20229:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "20237:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20245:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "20256:3:1",
                "type": ""
              }
            ],
            "src": "19806:1568:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21788:1004:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "21859:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21868:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "21799:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21799:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21799:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21881:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21892:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21897:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21888:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21888:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "21881:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "21969:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "21978:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "21909:59:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21909:73:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21909:73:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21991:18:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22002:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22007:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "21998:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21998:11:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "21991:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "22108:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22117:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22019:88:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22019:102:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22019:102:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22130:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22141:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22146:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22137:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22137:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22130:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "22221:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22230:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22159:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22159:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22159:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22243:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22254:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22259:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22250:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22250:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22243:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "22334:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22343:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22272:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22272:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22272:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22356:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22367:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22372:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22363:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22363:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22356:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22385:155:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22536:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22392:142:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22392:148:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22385:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value5",
                        "nodeType": "YulIdentifier",
                        "src": "22612:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22621:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22550:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22550:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22550:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22634:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22645:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22650:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22641:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22641:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22634:3:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value6",
                        "nodeType": "YulIdentifier",
                        "src": "22725:6:1"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22734:3:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22663:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22663:75:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22663:75:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22747:19:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "22758:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22763:2:1",
                        "type": "",
                        "value": "20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22754:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22754:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "22747:3:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22776:10:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "22783:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "22776:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_t_bytes32_t_address__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "21719:3:1",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "21725:6:1",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "21733:6:1",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "21741:6:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "21749:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "21757:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21765:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21773:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "21784:3:1",
                "type": ""
              }
            ],
            "src": "21380:1412:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22896:124:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "22906:26:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22918:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22929:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22914:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22914:18:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22906:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "22986:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22999:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23010:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22995:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22995:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "22942:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22942:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22942:71:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22868:9:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "22880:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22891:4:1",
                "type": ""
              }
            ],
            "src": "22798:222:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23152:206:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "23162:26:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23174:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23185:2:1",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23170:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23170:18:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23162:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "23242:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23255:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23266:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23251:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23251:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "23198:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23198:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23198:71:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "23323:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23336:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23347:2:1",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23332:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23332:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "23279:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23279:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23279:72:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23116:9:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "23128:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23136:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23147:4:1",
                "type": ""
              }
            ],
            "src": "23026:332:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23456:118:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "23466:26:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23478:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23489:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23474:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23474:18:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23466:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "23540:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23553:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23564:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23549:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23549:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bool_to_t_bool_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "23502:37:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23502:65:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23502:65:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23428:9:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23440:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23451:4:1",
                "type": ""
              }
            ],
            "src": "23364:210:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23678:124:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "23688:26:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23700:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23711:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23696:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23696:18:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23688:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "23768:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23781:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23792:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23777:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23777:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "23724:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23724:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23724:71:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23650:9:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23662:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23673:4:1",
                "type": ""
              }
            ],
            "src": "23580:222:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23990:371:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "24000:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24012:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24023:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24008:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24008:19:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24000:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "24081:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24094:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24105:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24090:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24090:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24037:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24037:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24037:71:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "24162:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24175:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24186:2:1",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24171:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24171:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_address_to_t_address_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24118:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24118:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24118:72:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "24244:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24257:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24268:2:1",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24253:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24253:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24200:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24200:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24200:72:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "24326:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24339:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24350:2:1",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24335:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24335:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24282:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24282:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24282:72:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23938:9:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "23950:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "23958:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "23966:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "23974:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23985:4:1",
                "type": ""
              }
            ],
            "src": "23808:553:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24575:448:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "24585:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24597:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24608:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24593:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24593:19:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24585:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "24666:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24679:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24690:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24675:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24675:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24622:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24622:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24622:71:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24714:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24725:2:1",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24710:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24710:18:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail",
                            "nodeType": "YulIdentifier",
                            "src": "24734:4:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24740:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "24730:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24730:20:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24703:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24703:48:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24703:48:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24760:84:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "24830:6:1"
                      },
                      {
                        "name": "tail",
                        "nodeType": "YulIdentifier",
                        "src": "24839:4:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24768:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24768:76:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24760:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "24906:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24919:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24930:2:1",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24915:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24915:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24854:51:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24854:80:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24854:80:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "24988:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25001:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25012:2:1",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24997:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24997:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "24944:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24944:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24944:72:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_rational_0_by_1_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24523:9:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "24535:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "24543:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "24551:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "24559:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24570:4:1",
                "type": ""
              }
            ],
            "src": "24367:656:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25229:440:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "25239:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25251:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25262:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25247:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25247:19:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25239:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "25320:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25333:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25344:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25329:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25329:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25276:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25276:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25276:71:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25368:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25379:2:1",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25364:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25364:18:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail",
                            "nodeType": "YulIdentifier",
                            "src": "25388:4:1"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25394:9:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "25384:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25384:20:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25357:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25357:48:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25357:48:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25414:84:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "25484:6:1"
                      },
                      {
                        "name": "tail",
                        "nodeType": "YulIdentifier",
                        "src": "25493:4:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25422:61:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25422:76:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25414:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "25552:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25565:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25576:2:1",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25561:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25561:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25508:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25508:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25508:72:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "25634:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25647:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25658:2:1",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25643:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25643:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25590:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25590:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25590:72:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25177:9:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "25189:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "25197:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "25205:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "25213:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25224:4:1",
                "type": ""
              }
            ],
            "src": "25029:640:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25853:367:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "25863:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25875:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25886:3:1",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25871:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25871:19:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25863:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "25944:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25957:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25968:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25953:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25953:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25900:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25900:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25900:71:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "26021:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26034:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26045:2:1",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26030:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26030:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "25981:39:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25981:68:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25981:68:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "26103:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26116:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26127:2:1",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26112:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26112:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "26059:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26059:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26059:72:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "26185:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26198:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26209:2:1",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26194:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26194:18:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "26141:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26141:72:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26141:72:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25801:9:1",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "25813:6:1",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "25821:6:1",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "25829:6:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "25837:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25848:4:1",
                "type": ""
              }
            ],
            "src": "25675:545:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26324:124:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "26334:26:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26346:9:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26357:2:1",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26342:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26342:18:1"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26334:4:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "26414:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26427:9:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26438:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26423:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26423:17:1"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
                      "nodeType": "YulIdentifier",
                      "src": "26370:43:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26370:71:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26370:71:1"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26296:9:1",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "26308:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26319:4:1",
                "type": ""
              }
            ],
            "src": "26226:222:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26495:88:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "26505:30:1",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "allocate_unbounded",
                      "nodeType": "YulIdentifier",
                      "src": "26515:18:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26515:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "26505:6:1"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "26564:6:1"
                      },
                      {
                        "name": "size",
                        "nodeType": "YulIdentifier",
                        "src": "26572:4:1"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "26544:19:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26544:33:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26544:33:1"
                }
              ]
            },
            "name": "allocate_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "26479:4:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "26488:6:1",
                "type": ""
              }
            ],
            "src": "26454:129:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26629:35:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "26639:19:1",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26655:2:1",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "26649:5:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26649:9:1"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "26639:6:1"
                    }
                  ]
                }
              ]
            },
            "name": "allocate_unbounded",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "26622:6:1",
                "type": ""
              }
            ],
            "src": "26589:75:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26736:241:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "26841:22:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "26843:16:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26843:18:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "26843:18:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "26813:6:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26821:18:1",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "26810:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26810:30:1"
                  },
                  "nodeType": "YulIf",
                  "src": "26807:2:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26873:37:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "26903:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "round_up_to_mul_of_32",
                      "nodeType": "YulIdentifier",
                      "src": "26881:21:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26881:29:1"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "26873:4:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26947:23:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "size",
                        "nodeType": "YulIdentifier",
                        "src": "26959:4:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26965:4:1",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26955:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26955:15:1"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "26947:4:1"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "26720:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "26731:4:1",
                "type": ""
              }
            ],
            "src": "26670:307:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27041:40:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27052:22:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "27068:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "27062:5:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27062:12:1"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "27052:6:1"
                    }
                  ]
                }
              ]
            },
            "name": "array_length_t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "27024:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "27034:6:1",
                "type": ""
              }
            ],
            "src": "26983:98:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27182:73:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "27199:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "27204:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27192:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27192:19:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27192:19:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27220:29:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "27239:3:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27244:4:1",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27235:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27235:14:1"
                  },
                  "variableNames": [
                    {
                      "name": "updated_pos",
                      "nodeType": "YulIdentifier",
                      "src": "27220:11:1"
                    }
                  ]
                }
              ]
            },
            "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "27154:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "27159:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "updated_pos",
                "nodeType": "YulTypedName",
                "src": "27170:11:1",
                "type": ""
              }
            ],
            "src": "27087:168:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27374:34:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27384:18:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "27399:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "updated_pos",
                      "nodeType": "YulIdentifier",
                      "src": "27384:11:1"
                    }
                  ]
                }
              ]
            },
            "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "27346:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "27351:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "updated_pos",
                "nodeType": "YulTypedName",
                "src": "27362:11:1",
                "type": ""
              }
            ],
            "src": "27261:147:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27528:34:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27538:18:1",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "27553:3:1"
                  },
                  "variableNames": [
                    {
                      "name": "updated_pos",
                      "nodeType": "YulIdentifier",
                      "src": "27538:11:1"
                    }
                  ]
                }
              ]
            },
            "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "27500:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "27505:6:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "updated_pos",
                "nodeType": "YulTypedName",
                "src": "27516:11:1",
                "type": ""
              }
            ],
            "src": "27414:148:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27612:261:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27622:25:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "27645:1:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint256",
                      "nodeType": "YulIdentifier",
                      "src": "27627:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27627:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "x",
                      "nodeType": "YulIdentifier",
                      "src": "27622:1:1"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27656:25:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "27679:1:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint256",
                      "nodeType": "YulIdentifier",
                      "src": "27661:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27661:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "y",
                      "nodeType": "YulIdentifier",
                      "src": "27656:1:1"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27819:22:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "27821:16:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27821:18:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27821:18:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "27740:1:1"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27747:66:1",
                            "type": "",
                            "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                          },
                          {
                            "name": "y",
                            "nodeType": "YulIdentifier",
                            "src": "27815:1:1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "27743:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27743:74:1"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "27737:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27737:81:1"
                  },
                  "nodeType": "YulIf",
                  "src": "27734:2:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27851:16:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "27862:1:1"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "27865:1:1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27858:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27858:9:1"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "27851:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "27599:1:1",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "27602:1:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "27608:3:1",
                "type": ""
              }
            ],
            "src": "27568:305:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27924:51:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "27934:35:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "27963:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint160",
                      "nodeType": "YulIdentifier",
                      "src": "27945:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27945:24:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "27934:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "27906:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "27916:7:1",
                "type": ""
              }
            ],
            "src": "27879:96:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28023:48:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28033:32:1",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "28058:5:1"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "28051:6:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28051:13:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "28044:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28044:21:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28033:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28005:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28015:7:1",
                "type": ""
              }
            ],
            "src": "27981:90:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28121:105:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28131:89:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28146:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28153:66:1",
                        "type": "",
                        "value": "0xff00000000000000000000000000000000000000000000000000000000000000"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "28142:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28142:78:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28131:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_bytes1",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28103:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28113:7:1",
                "type": ""
              }
            ],
            "src": "28077:149:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28277:32:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28287:16:1",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "28298:5:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28287:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_bytes32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28259:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28269:7:1",
                "type": ""
              }
            ],
            "src": "28232:77:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28360:81:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28370:65:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28385:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28392:42:1",
                        "type": "",
                        "value": "0xffffffffffffffffffffffffffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "28381:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28381:54:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28370:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_uint160",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28342:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28352:7:1",
                "type": ""
              }
            ],
            "src": "28315:126:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28492:32:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28502:16:1",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "28513:5:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28502:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28474:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28484:7:1",
                "type": ""
              }
            ],
            "src": "28447:77:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28573:43:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28583:27:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28598:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28605:4:1",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "28594:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28594:16:1"
                  },
                  "variableNames": [
                    {
                      "name": "cleaned",
                      "nodeType": "YulIdentifier",
                      "src": "28583:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "cleanup_t_uint8",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28555:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "cleaned",
                "nodeType": "YulTypedName",
                "src": "28565:7:1",
                "type": ""
              }
            ],
            "src": "28530:86:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28709:93:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28719:77:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28790:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "convert_t_contract$_EthereumDIDRegistry_$750_to_t_uint160",
                      "nodeType": "YulIdentifier",
                      "src": "28732:57:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28732:64:1"
                  },
                  "variableNames": [
                    {
                      "name": "converted",
                      "nodeType": "YulIdentifier",
                      "src": "28719:9:1"
                    }
                  ]
                }
              ]
            },
            "name": "convert_t_contract$_EthereumDIDRegistry_$750_to_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28689:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "converted",
                "nodeType": "YulTypedName",
                "src": "28699:9:1",
                "type": ""
              }
            ],
            "src": "28622:180:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28895:53:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28905:37:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28936:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint160",
                      "nodeType": "YulIdentifier",
                      "src": "28918:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28918:24:1"
                  },
                  "variableNames": [
                    {
                      "name": "converted",
                      "nodeType": "YulIdentifier",
                      "src": "28905:9:1"
                    }
                  ]
                }
              ]
            },
            "name": "convert_t_contract$_EthereumDIDRegistry_$750_to_t_uint160",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28875:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "converted",
                "nodeType": "YulTypedName",
                "src": "28885:9:1",
                "type": ""
              }
            ],
            "src": "28808:140:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29022:53:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "29032:37:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "29063:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint256",
                      "nodeType": "YulIdentifier",
                      "src": "29045:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29045:24:1"
                  },
                  "variableNames": [
                    {
                      "name": "converted",
                      "nodeType": "YulIdentifier",
                      "src": "29032:9:1"
                    }
                  ]
                }
              ]
            },
            "name": "convert_t_rational_0_by_1_to_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "29002:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "converted",
                "nodeType": "YulTypedName",
                "src": "29012:9:1",
                "type": ""
              }
            ],
            "src": "28954:121:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29132:103:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "29155:3:1"
                      },
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "29160:3:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "29165:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "29142:12:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29142:30:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29142:30:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "29213:3:1"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "29218:6:1"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29209:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29209:16:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29227:1:1",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29202:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29202:27:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29202:27:1"
                }
              ]
            },
            "name": "copy_calldata_to_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "29114:3:1",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "29119:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "29124:6:1",
                "type": ""
              }
            ],
            "src": "29081:154:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29290:258:1",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29300:10:1",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "29309:1:1",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "29304:1:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29369:63:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "29394:3:1"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "29399:1:1"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29390:3:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29390:11:1"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "29413:3:1"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "29418:1:1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "29409:3:1"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29409:11:1"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "29403:5:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29403:18:1"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "29383:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29383:39:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29383:39:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "29330:1:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "29333:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "29327:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29327:13:1"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "29341:19:1",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "29343:15:1",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "29352:1:1"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29355:2:1",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "29348:3:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29348:10:1"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "29343:1:1"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "29323:3:1",
                    "statements": []
                  },
                  "src": "29319:113:1"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29466:76:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "29516:3:1"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "29521:6:1"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29512:3:1"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29512:16:1"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29530:1:1",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "29505:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29505:27:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29505:27:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "29447:1:1"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "29450:6:1"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "29444:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29444:13:1"
                  },
                  "nodeType": "YulIf",
                  "src": "29441:2:1"
                }
              ]
            },
            "name": "copy_memory_to_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "29272:3:1",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "29277:3:1",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "29282:6:1",
                "type": ""
              }
            ],
            "src": "29241:307:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29597:238:1",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29607:58:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "29629:6:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "size",
                            "nodeType": "YulIdentifier",
                            "src": "29659:4:1"
                          }
                        ],
                        "functionName": {
                          "name": "round_up_to_mul_of_32",
                          "nodeType": "YulIdentifier",
                          "src": "29637:21:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29637:27:1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29625:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29625:40:1"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "29611:10:1",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29776:22:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "29778:16:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29778:18:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29778:18:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "29719:10:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29731:18:1",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "29716:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29716:34:1"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "29755:10:1"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "29767:6:1"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "29752:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29752:22:1"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "29713:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29713:62:1"
                  },
                  "nodeType": "YulIf",
                  "src": "29710:2:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29814:2:1",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "29818:10:1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29807:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29807:22:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29807:22:1"
                }
              ]
            },
            "name": "finalize_allocation",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "29583:6:1",
                "type": ""
              },
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "29591:4:1",
                "type": ""
              }
            ],
            "src": "29554:281:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29884:190:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "29894:33:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "29921:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "cleanup_t_uint256",
                      "nodeType": "YulIdentifier",
                      "src": "29903:17:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29903:24:1"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "29894:5:1"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30017:22:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "30019:16:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30019:18:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30019:18:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "29942:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29949:66:1",
                        "type": "",
                        "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "29939:2:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29939:77:1"
                  },
                  "nodeType": "YulIf",
                  "src": "29936:2:1"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30048:20:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "30059:5:1"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30066:1:1",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30055:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30055:13:1"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "30048:3:1"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "29870:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "29880:3:1",
                "type": ""
              }
            ],
            "src": "29841:233:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30127:53:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30137:37:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "30168:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "leftAlign_t_uint160",
                      "nodeType": "YulIdentifier",
                      "src": "30148:19:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30148:26:1"
                  },
                  "variableNames": [
                    {
                      "name": "aligned",
                      "nodeType": "YulIdentifier",
                      "src": "30137:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "leftAlign_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "30109:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "aligned",
                "nodeType": "YulTypedName",
                "src": "30119:7:1",
                "type": ""
              }
            ],
            "src": "30080:100:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30232:32:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30242:16:1",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "30253:5:1"
                  },
                  "variableNames": [
                    {
                      "name": "aligned",
                      "nodeType": "YulIdentifier",
                      "src": "30242:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "leftAlign_t_bytes1",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "30214:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "aligned",
                "nodeType": "YulTypedName",
                "src": "30224:7:1",
                "type": ""
              }
            ],
            "src": "30186:78:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30317:32:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30327:16:1",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "30338:5:1"
                  },
                  "variableNames": [
                    {
                      "name": "aligned",
                      "nodeType": "YulIdentifier",
                      "src": "30327:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "leftAlign_t_bytes32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "30299:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "aligned",
                "nodeType": "YulTypedName",
                "src": "30309:7:1",
                "type": ""
              }
            ],
            "src": "30270:79:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30402:47:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30412:31:1",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "30437:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "shift_left_96",
                      "nodeType": "YulIdentifier",
                      "src": "30423:13:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30423:20:1"
                  },
                  "variableNames": [
                    {
                      "name": "aligned",
                      "nodeType": "YulIdentifier",
                      "src": "30412:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "leftAlign_t_uint160",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "30384:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "aligned",
                "nodeType": "YulTypedName",
                "src": "30394:7:1",
                "type": ""
              }
            ],
            "src": "30355:94:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30502:32:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30512:16:1",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "30523:5:1"
                  },
                  "variableNames": [
                    {
                      "name": "aligned",
                      "nodeType": "YulIdentifier",
                      "src": "30512:7:1"
                    }
                  ]
                }
              ]
            },
            "name": "leftAlign_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "30484:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "aligned",
                "nodeType": "YulTypedName",
                "src": "30494:7:1",
                "type": ""
              }
            ],
            "src": "30455:79:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30568:152:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30585:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30588:77:1",
                        "type": "",
                        "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30578:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30578:88:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30578:88:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30682:1:1",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30685:4:1",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30675:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30675:15:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30675:15:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30706:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30709:4:1",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "30699:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30699:15:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30699:15:1"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "30540:180:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30754:152:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30771:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30774:77:1",
                        "type": "",
                        "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30764:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30764:88:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30764:88:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30868:1:1",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30871:4:1",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30861:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30861:15:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30861:15:1"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30892:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30895:4:1",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "30885:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30885:15:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30885:15:1"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "30726:180:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31001:28:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31018:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31021:1:1",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "31011:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31011:12:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31011:12:1"
                }
              ]
            },
            "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
            "nodeType": "YulFunctionDefinition",
            "src": "30912:117:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31124:28:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31141:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31144:1:1",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "31134:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31134:12:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31134:12:1"
                }
              ]
            },
            "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
            "nodeType": "YulFunctionDefinition",
            "src": "31035:117:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31247:28:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31264:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31267:1:1",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "31257:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31257:12:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31257:12:1"
                }
              ]
            },
            "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
            "nodeType": "YulFunctionDefinition",
            "src": "31158:117:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31370:28:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31387:1:1",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31390:1:1",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "31380:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31380:12:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31380:12:1"
                }
              ]
            },
            "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
            "nodeType": "YulFunctionDefinition",
            "src": "31281:117:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31452:54:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "31462:38:1",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "31480:5:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31487:2:1",
                            "type": "",
                            "value": "31"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31476:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31476:14:1"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31496:2:1",
                            "type": "",
                            "value": "31"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "31492:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31492:7:1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "31472:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31472:28:1"
                  },
                  "variableNames": [
                    {
                      "name": "result",
                      "nodeType": "YulIdentifier",
                      "src": "31462:6:1"
                    }
                  ]
                }
              ]
            },
            "name": "round_up_to_mul_of_32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "31435:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "result",
                "nodeType": "YulTypedName",
                "src": "31445:6:1",
                "type": ""
              }
            ],
            "src": "31404:102:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31554:52:1",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "31564:35:1",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31589:2:1",
                        "type": "",
                        "value": "96"
                      },
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "31593:5:1"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "31585:3:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31585:14:1"
                  },
                  "variableNames": [
                    {
                      "name": "newValue",
                      "nodeType": "YulIdentifier",
                      "src": "31564:8:1"
                    }
                  ]
                }
              ]
            },
            "name": "shift_left_96",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "31535:5:1",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "newValue",
                "nodeType": "YulTypedName",
                "src": "31545:8:1",
                "type": ""
              }
            ],
            "src": "31512:94:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31718:59:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "31740:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31748:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31736:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31736:14:1"
                      },
                      {
                        "hexValue": "7265766f6b65417474726962757465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "31752:17:1",
                        "type": "",
                        "value": "revokeAttribute"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31729:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31729:41:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31729:41:1"
                }
              ]
            },
            "name": "store_literal_in_memory_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "31710:6:1",
                "type": ""
              }
            ],
            "src": "31612:165:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31889:55:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "31911:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31919:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31907:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31907:14:1"
                      },
                      {
                        "hexValue": "6368616e67654f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "31923:13:1",
                        "type": "",
                        "value": "changeOwner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "31900:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31900:37:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31900:37:1"
                }
              ]
            },
            "name": "store_literal_in_memory_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "31881:6:1",
                "type": ""
              }
            ],
            "src": "31783:161:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32056:55:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "32078:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32086:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32074:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32074:14:1"
                      },
                      {
                        "hexValue": "61646444656c6567617465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "32090:13:1",
                        "type": "",
                        "value": "addDelegate"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32067:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32067:37:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32067:37:1"
                }
              ]
            },
            "name": "store_literal_in_memory_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "32048:6:1",
                "type": ""
              }
            ],
            "src": "31950:161:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32223:56:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "32245:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32253:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32241:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32241:14:1"
                      },
                      {
                        "hexValue": "736574417474726962757465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "32257:14:1",
                        "type": "",
                        "value": "setAttribute"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32234:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32234:38:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32234:38:1"
                }
              ]
            },
            "name": "store_literal_in_memory_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "32215:6:1",
                "type": ""
              }
            ],
            "src": "32117:162:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32391:58:1",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "32413:6:1"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32421:1:1",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32409:3:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32409:14:1"
                      },
                      {
                        "hexValue": "7265766f6b6544656c6567617465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "32425:16:1",
                        "type": "",
                        "value": "revokeDelegate"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32402:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32402:40:1"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32402:40:1"
                }
              ]
            },
            "name": "store_literal_in_memory_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "32383:6:1",
                "type": ""
              }
            ],
            "src": "32285:164:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32498:79:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32555:16:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32564:1:1",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32567:1:1",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "32557:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32557:12:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32557:12:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "32521:5:1"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "32546:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_address",
                              "nodeType": "YulIdentifier",
                              "src": "32528:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32528:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "32518:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32518:35:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "32511:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32511:43:1"
                  },
                  "nodeType": "YulIf",
                  "src": "32508:2:1"
                }
              ]
            },
            "name": "validator_revert_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "32491:5:1",
                "type": ""
              }
            ],
            "src": "32455:122:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32626:79:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32683:16:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32692:1:1",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32695:1:1",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "32685:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32685:12:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32685:12:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "32649:5:1"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "32674:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_bytes32",
                              "nodeType": "YulIdentifier",
                              "src": "32656:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32656:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "32646:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32646:35:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "32639:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32639:43:1"
                  },
                  "nodeType": "YulIf",
                  "src": "32636:2:1"
                }
              ]
            },
            "name": "validator_revert_t_bytes32",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "32619:5:1",
                "type": ""
              }
            ],
            "src": "32583:122:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32754:79:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32811:16:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32820:1:1",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32823:1:1",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "32813:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32813:12:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32813:12:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "32777:5:1"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "32802:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_uint256",
                              "nodeType": "YulIdentifier",
                              "src": "32784:17:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32784:24:1"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "32774:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32774:35:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "32767:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32767:43:1"
                  },
                  "nodeType": "YulIf",
                  "src": "32764:2:1"
                }
              ]
            },
            "name": "validator_revert_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "32747:5:1",
                "type": ""
              }
            ],
            "src": "32711:122:1"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32880:77:1",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32935:16:1",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32944:1:1",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32947:1:1",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "32937:6:1"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32937:12:1"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32937:12:1"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "32903:5:1"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "32926:5:1"
                              }
                            ],
                            "functionName": {
                              "name": "cleanup_t_uint8",
                              "nodeType": "YulIdentifier",
                              "src": "32910:15:1"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32910:22:1"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "32900:2:1"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32900:33:1"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "32893:6:1"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32893:41:1"
                  },
                  "nodeType": "YulIf",
                  "src": "32890:2:1"
                }
              ]
            },
            "name": "validator_revert_t_uint8",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "32873:5:1",
                "type": ""
              }
            ],
            "src": "32839:118:1"
          }
        ]
      },
      "contents": "{\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory(src, dst, length)\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_t_uint8(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_address(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value5 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_bytes32t_bytes32t_bytes32t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value5 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_bytes1(cleanup_t_bytes1(value)))\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(convert_t_contract$_EthereumDIDRegistry_$750_to_t_address(value)))\n    }\n\n    function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n    }\n\n    function abi_encode_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 15)\n        store_literal_in_memory_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860(pos)\n        end := add(pos, 15)\n    }\n\n    function abi_encode_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 11)\n        store_literal_in_memory_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9(pos)\n        end := add(pos, 11)\n    }\n\n    function abi_encode_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 11)\n        store_literal_in_memory_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2(pos)\n        end := add(pos, 11)\n    }\n\n    function abi_encode_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 12)\n        store_literal_in_memory_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6(pos)\n        end := add(pos, 12)\n    }\n\n    function abi_encode_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 14)\n        store_literal_in_memory_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c(pos)\n        end := add(pos, 14)\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_t_bytes32_t_bytes_memory_ptr__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value6, value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value5,  pos)\n        pos := add(pos, 32)\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value6,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_t_address__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value5,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_t_bytes32_t_address_t_uint256__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value7, value6, value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value5,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value6,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value7,  pos)\n        pos := add(pos, 32)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value7, value6, value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value5,  pos)\n        pos := add(pos, 32)\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value6,  pos)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value7,  pos)\n        pos := add(pos, 32)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_packed_t_bytes1_t_bytes1_t_contract$_EthereumDIDRegistry_$750_t_uint256_t_address_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_t_bytes32_t_address__to_t_bytes1_t_bytes1_t_address_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed(pos , value6, value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_contract$_EthereumDIDRegistry_$750_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value5,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value6,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_rational_0_by_1_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n\n        // overflow, if x > (maxValue - y)\n        if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n        sum := add(x, y)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function cleanup_t_bytes1(value) -> cleaned {\n        cleaned := and(value, 0xff00000000000000000000000000000000000000000000000000000000000000)\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_contract$_EthereumDIDRegistry_$750_to_t_address(value) -> converted {\n        converted := convert_t_contract$_EthereumDIDRegistry_$750_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_EthereumDIDRegistry_$750_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(value)\n    }\n\n    function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(value)\n    }\n\n    function copy_calldata_to_memory(src, dst, length) {\n        calldatacopy(dst, src, length)\n        // clear end\n        mstore(add(dst, length), 0)\n    }\n\n    function copy_memory_to_memory(src, dst, length) {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length)\n        {\n            // clear end\n            mstore(add(dst, length), 0)\n        }\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function leftAlign_t_bytes1(value) -> aligned {\n        aligned := value\n    }\n\n    function leftAlign_t_bytes32(value) -> aligned {\n        aligned := value\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function leftAlign_t_uint256(value) -> aligned {\n        aligned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function store_literal_in_memory_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860(memPtr) {\n\n        mstore(add(memPtr, 0), \"revokeAttribute\")\n\n    }\n\n    function store_literal_in_memory_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9(memPtr) {\n\n        mstore(add(memPtr, 0), \"changeOwner\")\n\n    }\n\n    function store_literal_in_memory_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2(memPtr) {\n\n        mstore(add(memPtr, 0), \"addDelegate\")\n\n    }\n\n    function store_literal_in_memory_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6(memPtr) {\n\n        mstore(add(memPtr, 0), \"setAttribute\")\n\n    }\n\n    function store_literal_in_memory_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c(memPtr) {\n\n        mstore(add(memPtr, 0), \"revokeDelegate\")\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n}\n",
      "id": 1,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "25:5864:0:-:0;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "25:5864:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5355:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;59:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;104:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4692:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1917:348;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1297:241;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;232:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4524:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3661:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;790:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3825:407;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2855:433;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2672:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5503:383;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1795:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;189:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5355:145;5445:50;5461:8;5471:10;5483:4;5489:5;5445:15;:50::i;:::-;5355:145;;;:::o;59:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;104:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4692:408::-;4840:12;4889:4;4882:12;;4903:1;4896:9;;4907:4;4913:5;:30;4919:23;4933:8;4919:13;:23::i;:::-;4913:30;;;;;;;;;;;;;;;;4945:8;4971:4;4977:5;4984:8;4865:128;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4855:139;;;;;;4840:154;;5000:95;5013:8;5023:48;5038:8;5048:4;5054;5060;5066;5023:14;:48::i;:::-;5073:4;5079:5;5086:8;5000:12;:95::i;:::-;4834:266;4692:408;;;;;;;:::o;1917:348::-;2033:12;2082:4;2075:12;;2096:1;2089:9;;2100:4;2106:5;:30;2112:23;2126:8;2112:13;:23::i;:::-;2106:30;;;;;;;;;;;;;;;;2138:8;2163;2058:114;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2048:125;;;;;;2033:140;;2179:81;2191:8;2201:48;2216:8;2226:4;2232;2238;2244;2201:14;:48::i;:::-;2251:8;2179:11;:81::i;:::-;2027:238;1917:348;;;;;:::o;1297:241::-;1398:4;1410:13;1426:9;:19;1436:8;1426:19;;;;;;;;;;;;;;;:56;1467:12;1456:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;1446:35;;;;;;1426:56;;;;;;;;;;;:66;1483:8;1426:66;;;;;;;;;;;;;;;;1410:82;;1517:15;1506:8;:26;1498:35;;;1297:241;;;;;:::o;232:37::-;;;;;;;;;;;;;;;;;:::o;4524:164::-;4626:57;4639:8;4649:10;4661:4;4667:5;4674:8;4626:12;:57::i;:::-;4524:164;;;;:::o;3661:160::-;3756:60;3771:8;3781:10;3793:12;3807:8;3756:14;:60::i;:::-;3661:160;;;:::o;790:228::-;851:7;867:13;883:6;:16;890:8;883:16;;;;;;;;;;;;;;;;;;;;;;;;;867:32;;919:42;910:51;;:5;:51;;;906:86;;979:5;972:12;;;;;906:86;1005:8;998:15;;;790:228;;;;:::o;3825:407::-;3966:12;4015:4;4008:12;;4029:1;4022:9;;4033:4;4039:5;:30;4045:23;4059:8;4045:13;:23::i;:::-;4039:30;;;;;;;;;;;;;;;;4071:8;4099:12;4113:8;3991:131;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3981:142;;;;;;3966:157;;4129:98;4144:8;4154:48;4169:8;4179:4;4185;4191;4197;4154:14;:48::i;:::-;4204:12;4218:8;4129:14;:98::i;:::-;3960:272;3825:407;;;;;;:::o;2855:433::-;3008:12;3057:4;3050:12;;3071:1;3064:9;;3075:4;3081:5;:30;3087:23;3101:8;3087:13;:23::i;:::-;3081:30;;;;;;;;;;;;;;;;3113:8;3138:12;3152:8;3162;3033:138;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3023:149;;;;;;3008:164;;3178:105;3190:8;3200:48;3215:8;3225:4;3231;3237;3243;3200:14;:48::i;:::-;3250:12;3264:8;3274;3178:11;:105::i;:::-;3002:286;2855:433;;;;;;;:::o;2672:179::-;2779:67;2791:8;2801:10;2813:12;2827:8;2837;2779:11;:67::i;:::-;2672:179;;;;:::o;5503:383::-;5639:12;5688:4;5681:12;;5702:1;5695:9;;5706:4;5712:5;:30;5718:23;5732:8;5718:13;:23::i;:::-;5712:30;;;;;;;;;;;;;;;;5744:8;5773:4;5779:5;5664:121;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5654:132;;;;;;5639:147;;5793:88;5809:8;5819:48;5834:8;5844:4;5850;5856;5862;5819:14;:48::i;:::-;5869:4;5875:5;5793:15;:88::i;:::-;5633:253;5503:383;;;;;;:::o;1795:118::-;1865:43;1877:8;1887:10;1899:8;1865:11;:43::i;:::-;1795:118;;:::o;189:39::-;;;;;;;;;;;;;;;;;:::o;5104:247::-;5216:8;5226:5;350:23;364:8;350:13;:23::i;:::-;341:32;;:5;:32;;;332:42;;;;;;5264:8:::1;5244:64;;;5274:4;5280:5;5287:1;5290:7;:17;5298:8;5290:17;;;;;;;;;;;;;;;;5244:64;;;;;;;;;:::i;:::-;;;;;;;;5334:12;5314:7;:17;5322:8;5314:17;;;;;;;;;;;;;;;:32;;;;5104:247:::0;;;;;;:::o;1022:271::-;1135:7;1150:14;1167:33;1177:4;1183;1189;1195;1167:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:50;;1224:23;1238:8;1224:13;:23::i;:::-;1214:33;;:6;:33;;;1206:42;;;;;;1254:5;:13;1260:6;1254:13;;;;;;;;;;;;;;;;:15;;;;;;;;;:::i;:::-;;;;;;1282:6;1275:13;;;1022:271;;;;;;;:::o;4236:284::-;4360:8;4370:5;350:23;364:8;350:13;:23::i;:::-;341:32;;:5;:32;;;332:42;;;;;;4408:8:::1;4388:89;;;4418:4;4424:5;4449:8;4431:15;:26;;;;:::i;:::-;4459:7;:17;4467:8;4459:17;;;;;;;;;;;;;;;;4388:89;;;;;;;;;:::i;:::-;;;;;;;;4503:12;4483:7;:17;4491:8;4483:17;;;;;;;;;;;;;;;:32;;;;4236:284:::0;;;;;;;:::o;1542:249::-;1633:8;1643:5;350:23;364:8;350:13;:23::i;:::-;341:32;;:5;:32;;;332:42;;;;;;1675:8:::1;1656:6;:16:::0;1663:8:::1;1656:16;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1710:8;1694:54;;;1720:8;1730:7;:17;1738:8;1730:17;;;;;;;;;;;;;;;;1694:54;;;;;;;:::i;:::-;;;;;;;;1774:12;1754:7;:17;1762:8;1754:17;;;;;;;;;;;;;;;:32;;;;1542:249:::0;;;;;:::o;3292:365::-;3408:8;3418:5;350:23;364:8;350:13;:23::i;:::-;341:32;;:5;:32;;;332:42;;;;;;3500:15:::1;3431:9;:19;3441:8;3431:19;;;;;;;;;;;;;;;:56;3472:12;3461:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;3451:35;;;;;;3431:56;;;;;;;;;;;:66;3488:8;3431:66;;;;;;;;;;;;;;;:84;;;;3545:8;3526:88;;;3555:12;3569:8;3579:15;3596:7;:17;3604:8;3596:17;;;;;;;;;;;;;;;;3526:88;;;;;;;;;:::i;:::-;;;;;;;;3640:12;3620:7;:17;3628:8;3620:17;;;;;;;;;;;;;;;:32;;;;3292:365:::0;;;;;;:::o;2269:399::-;2397:8;2407:5;350:23;364:8;350:13;:23::i;:::-;341:32;;:5;:32;;;332:42;;;;;;2507:8:::1;2489:15;:26;;;;:::i;:::-;2420:9;:19;2430:8;2420:19;;;;;;;;;;;;;;;:56;2461:12;2450:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;2440:35;;;;;;2420:56;;;;;;;;;;;:66;2477:8;2420:66;;;;;;;;;;;;;;;:95;;;;2545:8;2526:99;;;2555:12;2569:8;2597;2579:15;:26;;;;:::i;:::-;2607:7;:17;2615:8;2607:17;;;;;;;;;;;;;;;;2526:99;;;;;;;;;:::i;:::-;;;;;;;;2651:12;2631:7;:17;2639:8;2631:17;;;;;;;;;;;;;;;:32;;;;2269:399:::0;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;280:79;;:::i;:::-;249:2;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;;;;;;:::o;423:139::-;469:5;507:6;494:20;485:29;;523:33;550:5;523:33;:::i;:::-;475:87;;;;:::o;568:139::-;614:5;652:6;639:20;630:29;;668:33;695:5;668:33;:::i;:::-;620:87;;;;:::o;726:338::-;781:5;830:3;823:4;815:6;811:17;807:27;797:2;;838:79;;:::i;:::-;797:2;955:6;942:20;980:78;1054:3;1046:6;1039:4;1031:6;1027:17;980:78;:::i;:::-;971:87;;787:277;;;;;:::o;1070:139::-;1116:5;1154:6;1141:20;1132:29;;1170:33;1197:5;1170:33;:::i;:::-;1122:87;;;;:::o;1215:135::-;1259:5;1297:6;1284:20;1275:29;;1313:31;1338:5;1313:31;:::i;:::-;1265:85;;;;:::o;1356:329::-;1415:6;1464:2;1452:9;1443:7;1439:23;1435:32;1432:2;;;1470:79;;:::i;:::-;1432:2;1590:1;1615:53;1660:7;1651:6;1640:9;1636:22;1615:53;:::i;:::-;1605:63;;1561:117;1422:263;;;;:::o;1691:474::-;1759:6;1767;1816:2;1804:9;1795:7;1791:23;1787:32;1784:2;;;1822:79;;:::i;:::-;1784:2;1942:1;1967:53;2012:7;2003:6;1992:9;1988:22;1967:53;:::i;:::-;1957:63;;1913:117;2069:2;2095:53;2140:7;2131:6;2120:9;2116:22;2095:53;:::i;:::-;2085:63;;2040:118;1774:391;;;;;:::o;2171:619::-;2248:6;2256;2264;2313:2;2301:9;2292:7;2288:23;2284:32;2281:2;;;2319:79;;:::i;:::-;2281:2;2439:1;2464:53;2509:7;2500:6;2489:9;2485:22;2464:53;:::i;:::-;2454:63;;2410:117;2566:2;2592:53;2637:7;2628:6;2617:9;2613:22;2592:53;:::i;:::-;2582:63;;2537:118;2694:2;2720:53;2765:7;2756:6;2745:9;2741:22;2720:53;:::i;:::-;2710:63;;2665:118;2271:519;;;;;:::o;2796:765::-;2882:6;2890;2898;2906;2955:3;2943:9;2934:7;2930:23;2926:33;2923:2;;;2962:79;;:::i;:::-;2923:2;3082:1;3107:53;3152:7;3143:6;3132:9;3128:22;3107:53;:::i;:::-;3097:63;;3053:117;3209:2;3235:53;3280:7;3271:6;3260:9;3256:22;3235:53;:::i;:::-;3225:63;;3180:118;3337:2;3363:53;3408:7;3399:6;3388:9;3384:22;3363:53;:::i;:::-;3353:63;;3308:118;3465:2;3491:53;3536:7;3527:6;3516:9;3512:22;3491:53;:::i;:::-;3481:63;;3436:118;2913:648;;;;;;;:::o;3567:797::-;3653:6;3661;3669;3718:2;3706:9;3697:7;3693:23;3689:32;3686:2;;;3724:79;;:::i;:::-;3686:2;3844:1;3869:53;3914:7;3905:6;3894:9;3890:22;3869:53;:::i;:::-;3859:63;;3815:117;3971:2;3997:53;4042:7;4033:6;4022:9;4018:22;3997:53;:::i;:::-;3987:63;;3942:118;4127:2;4116:9;4112:18;4099:32;4158:18;4150:6;4147:30;4144:2;;;4180:79;;:::i;:::-;4144:2;4285:62;4339:7;4330:6;4319:9;4315:22;4285:62;:::i;:::-;4275:72;;4070:287;3676:688;;;;;:::o;4370:943::-;4465:6;4473;4481;4489;4538:3;4526:9;4517:7;4513:23;4509:33;4506:2;;;4545:79;;:::i;:::-;4506:2;4665:1;4690:53;4735:7;4726:6;4715:9;4711:22;4690:53;:::i;:::-;4680:63;;4636:117;4792:2;4818:53;4863:7;4854:6;4843:9;4839:22;4818:53;:::i;:::-;4808:63;;4763:118;4948:2;4937:9;4933:18;4920:32;4979:18;4971:6;4968:30;4965:2;;;5001:79;;:::i;:::-;4965:2;5106:62;5160:7;5151:6;5140:9;5136:22;5106:62;:::i;:::-;5096:72;;4891:287;5217:2;5243:53;5288:7;5279:6;5268:9;5264:22;5243:53;:::i;:::-;5233:63;;5188:118;4496:817;;;;;;;:::o;5319:907::-;5412:6;5420;5428;5436;5444;5493:3;5481:9;5472:7;5468:23;5464:33;5461:2;;;5500:79;;:::i;:::-;5461:2;5620:1;5645:53;5690:7;5681:6;5670:9;5666:22;5645:53;:::i;:::-;5635:63;;5591:117;5747:2;5773:51;5816:7;5807:6;5796:9;5792:22;5773:51;:::i;:::-;5763:61;;5718:116;5873:2;5899:53;5944:7;5935:6;5924:9;5920:22;5899:53;:::i;:::-;5889:63;;5844:118;6001:2;6027:53;6072:7;6063:6;6052:9;6048:22;6027:53;:::i;:::-;6017:63;;5972:118;6129:3;6156:53;6201:7;6192:6;6181:9;6177:22;6156:53;:::i;:::-;6146:63;;6100:119;5451:775;;;;;;;;:::o;6232:1053::-;6334:6;6342;6350;6358;6366;6374;6423:3;6411:9;6402:7;6398:23;6394:33;6391:2;;;6430:79;;:::i;:::-;6391:2;6550:1;6575:53;6620:7;6611:6;6600:9;6596:22;6575:53;:::i;:::-;6565:63;;6521:117;6677:2;6703:51;6746:7;6737:6;6726:9;6722:22;6703:51;:::i;:::-;6693:61;;6648:116;6803:2;6829:53;6874:7;6865:6;6854:9;6850:22;6829:53;:::i;:::-;6819:63;;6774:118;6931:2;6957:53;7002:7;6993:6;6982:9;6978:22;6957:53;:::i;:::-;6947:63;;6902:118;7059:3;7086:53;7131:7;7122:6;7111:9;7107:22;7086:53;:::i;:::-;7076:63;;7030:119;7188:3;7215:53;7260:7;7251:6;7240:9;7236:22;7215:53;:::i;:::-;7205:63;;7159:119;6381:904;;;;;;;;:::o;7291:1199::-;7402:6;7410;7418;7426;7434;7442;7450;7499:3;7487:9;7478:7;7474:23;7470:33;7467:2;;;7506:79;;:::i;:::-;7467:2;7626:1;7651:53;7696:7;7687:6;7676:9;7672:22;7651:53;:::i;:::-;7641:63;;7597:117;7753:2;7779:51;7822:7;7813:6;7802:9;7798:22;7779:51;:::i;:::-;7769:61;;7724:116;7879:2;7905:53;7950:7;7941:6;7930:9;7926:22;7905:53;:::i;:::-;7895:63;;7850:118;8007:2;8033:53;8078:7;8069:6;8058:9;8054:22;8033:53;:::i;:::-;8023:63;;7978:118;8135:3;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8106:119;8264:3;8291:53;8336:7;8327:6;8316:9;8312:22;8291:53;:::i;:::-;8281:63;;8235:119;8393:3;8420:53;8465:7;8456:6;8445:9;8441:22;8420:53;:::i;:::-;8410:63;;8364:119;7457:1033;;;;;;;;;;:::o;8496:1231::-;8607:6;8615;8623;8631;8639;8647;8696:3;8684:9;8675:7;8671:23;8667:33;8664:2;;;8703:79;;:::i;:::-;8664:2;8823:1;8848:53;8893:7;8884:6;8873:9;8869:22;8848:53;:::i;:::-;8838:63;;8794:117;8950:2;8976:51;9019:7;9010:6;8999:9;8995:22;8976:51;:::i;:::-;8966:61;;8921:116;9076:2;9102:53;9147:7;9138:6;9127:9;9123:22;9102:53;:::i;:::-;9092:63;;9047:118;9204:2;9230:53;9275:7;9266:6;9255:9;9251:22;9230:53;:::i;:::-;9220:63;;9175:118;9332:3;9359:53;9404:7;9395:6;9384:9;9380:22;9359:53;:::i;:::-;9349:63;;9303:119;9489:3;9478:9;9474:19;9461:33;9521:18;9513:6;9510:30;9507:2;;;9543:79;;:::i;:::-;9507:2;9648:62;9702:7;9693:6;9682:9;9678:22;9648:62;:::i;:::-;9638:72;;9432:288;8654:1073;;;;;;;;:::o;9733:1377::-;9853:6;9861;9869;9877;9885;9893;9901;9950:3;9938:9;9929:7;9925:23;9921:33;9918:2;;;9957:79;;:::i;:::-;9918:2;10077:1;10102:53;10147:7;10138:6;10127:9;10123:22;10102:53;:::i;:::-;10092:63;;10048:117;10204:2;10230:51;10273:7;10264:6;10253:9;10249:22;10230:51;:::i;:::-;10220:61;;10175:116;10330:2;10356:53;10401:7;10392:6;10381:9;10377:22;10356:53;:::i;:::-;10346:63;;10301:118;10458:2;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10429:118;10586:3;10613:53;10658:7;10649:6;10638:9;10634:22;10613:53;:::i;:::-;10603:63;;10557:119;10743:3;10732:9;10728:19;10715:33;10775:18;10767:6;10764:30;10761:2;;;10797:79;;:::i;:::-;10761:2;10902:62;10956:7;10947:6;10936:9;10932:22;10902:62;:::i;:::-;10892:72;;10686:288;11013:3;11040:53;11085:7;11076:6;11065:9;11061:22;11040:53;:::i;:::-;11030:63;;10984:119;9908:1202;;;;;;;;;;:::o;11116:118::-;11203:24;11221:5;11203:24;:::i;:::-;11198:3;11191:37;11181:53;;:::o;11240:157::-;11345:45;11365:24;11383:5;11365:24;:::i;:::-;11345:45;:::i;:::-;11340:3;11333:58;11323:74;;:::o;11403:109::-;11484:21;11499:5;11484:21;:::i;:::-;11479:3;11472:34;11462:50;;:::o;11518:153::-;11621:43;11640:23;11657:5;11640:23;:::i;:::-;11621:43;:::i;:::-;11616:3;11609:56;11599:72;;:::o;11677:118::-;11764:24;11782:5;11764:24;:::i;:::-;11759:3;11752:37;11742:53;;:::o;11801:157::-;11906:45;11926:24;11944:5;11926:24;:::i;:::-;11906:45;:::i;:::-;11901:3;11894:58;11884:74;;:::o;11964:360::-;12050:3;12078:38;12110:5;12078:38;:::i;:::-;12132:70;12195:6;12190:3;12132:70;:::i;:::-;12125:77;;12211:52;12256:6;12251:3;12244:4;12237:5;12233:16;12211:52;:::i;:::-;12288:29;12310:6;12288:29;:::i;:::-;12283:3;12279:39;12272:46;;12054:270;;;;;:::o;12330:373::-;12434:3;12462:38;12494:5;12462:38;:::i;:::-;12516:88;12597:6;12592:3;12516:88;:::i;:::-;12509:95;;12613:52;12658:6;12653:3;12646:4;12639:5;12635:16;12613:52;:::i;:::-;12690:6;12685:3;12681:16;12674:23;;12438:265;;;;;:::o;12709:224::-;12841:85;12861:64;12919:5;12861:64;:::i;:::-;12841:85;:::i;:::-;12836:3;12829:98;12819:114;;:::o;12939:147::-;13034:45;13073:5;13034:45;:::i;:::-;13029:3;13022:58;13012:74;;:::o;13092:402::-;13252:3;13273:85;13355:2;13350:3;13273:85;:::i;:::-;13266:92;;13367:93;13456:3;13367:93;:::i;:::-;13485:2;13480:3;13476:12;13469:19;;13256:238;;;:::o;13500:402::-;13660:3;13681:85;13763:2;13758:3;13681:85;:::i;:::-;13674:92;;13775:93;13864:3;13775:93;:::i;:::-;13893:2;13888:3;13884:12;13877:19;;13664:238;;;:::o;13908:402::-;14068:3;14089:85;14171:2;14166:3;14089:85;:::i;:::-;14082:92;;14183:93;14272:3;14183:93;:::i;:::-;14301:2;14296:3;14292:12;14285:19;;14072:238;;;:::o;14316:402::-;14476:3;14497:85;14579:2;14574:3;14497:85;:::i;:::-;14490:92;;14591:93;14680:3;14591:93;:::i;:::-;14709:2;14704:3;14700:12;14693:19;;14480:238;;;:::o;14724:402::-;14884:3;14905:85;14987:2;14982:3;14905:85;:::i;:::-;14898:92;;14999:93;15088:3;14999:93;:::i;:::-;15117:2;15112:3;15108:12;15101:19;;14888:238;;;:::o;15132:118::-;15219:24;15237:5;15219:24;:::i;:::-;15214:3;15207:37;15197:53;;:::o;15256:157::-;15361:45;15381:24;15399:5;15381:24;:::i;:::-;15361:45;:::i;:::-;15356:3;15349:58;15339:74;;:::o;15419:112::-;15502:22;15518:5;15502:22;:::i;:::-;15497:3;15490:35;15480:51;;:::o;15537:1427::-;15959:3;15974:73;16043:3;16034:6;15974:73;:::i;:::-;16072:1;16067:3;16063:11;16056:18;;16084:73;16153:3;16144:6;16084:73;:::i;:::-;16182:1;16177:3;16173:11;16166:18;;16194:102;16292:3;16283:6;16194:102;:::i;:::-;16321:2;16316:3;16312:12;16305:19;;16334:75;16405:3;16396:6;16334:75;:::i;:::-;16434:2;16429:3;16425:12;16418:19;;16447:75;16518:3;16509:6;16447:75;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16567:148;16711:3;16567:148;:::i;:::-;16560:155;;16725:75;16796:3;16787:6;16725:75;:::i;:::-;16825:2;16820:3;16816:12;16809:19;;16845:93;16934:3;16925:6;16845:93;:::i;:::-;16838:100;;16955:3;16948:10;;15963:1001;;;;;;;;;;:::o;16970:1271::-;17346:3;17361:73;17430:3;17421:6;17361:73;:::i;:::-;17459:1;17454:3;17450:11;17443:18;;17471:73;17540:3;17531:6;17471:73;:::i;:::-;17569:1;17564:3;17560:11;17553:18;;17581:102;17679:3;17670:6;17581:102;:::i;:::-;17708:2;17703:3;17699:12;17692:19;;17721:75;17792:3;17783:6;17721:75;:::i;:::-;17821:2;17816:3;17812:12;17805:19;;17834:75;17905:3;17896:6;17834:75;:::i;:::-;17934:2;17929:3;17925:12;17918:19;;17954:148;18098:3;17954:148;:::i;:::-;17947:155;;18112:75;18183:3;18174:6;18112:75;:::i;:::-;18212:2;18207:3;18203:12;18196:19;;18232:3;18225:10;;17350:891;;;;;;;;;:::o;18247:1553::-;18679:3;18694:73;18763:3;18754:6;18694:73;:::i;:::-;18792:1;18787:3;18783:11;18776:18;;18804:73;18873:3;18864:6;18804:73;:::i;:::-;18902:1;18897:3;18893:11;18886:18;;18914:102;19012:3;19003:6;18914:102;:::i;:::-;19041:2;19036:3;19032:12;19025:19;;19054:75;19125:3;19116:6;19054:75;:::i;:::-;19154:2;19149:3;19145:12;19138:19;;19167:75;19238:3;19229:6;19167:75;:::i;:::-;19267:2;19262:3;19258:12;19251:19;;19287:148;19431:3;19287:148;:::i;:::-;19280:155;;19445:75;19516:3;19507:6;19445:75;:::i;:::-;19545:2;19540:3;19536:12;19529:19;;19558:75;19629:3;19620:6;19558:75;:::i;:::-;19658:2;19653:3;19649:12;19642:19;;19671:75;19742:3;19733:6;19671:75;:::i;:::-;19771:2;19766:3;19762:12;19755:19;;19791:3;19784:10;;18683:1117;;;;;;;;;;;:::o;19806:1568::-;20256:3;20271:73;20340:3;20331:6;20271:73;:::i;:::-;20369:1;20364:3;20360:11;20353:18;;20381:73;20450:3;20441:6;20381:73;:::i;:::-;20479:1;20474:3;20470:11;20463:18;;20491:102;20589:3;20580:6;20491:102;:::i;:::-;20618:2;20613:3;20609:12;20602:19;;20631:75;20702:3;20693:6;20631:75;:::i;:::-;20731:2;20726:3;20722:12;20715:19;;20744:75;20815:3;20806:6;20744:75;:::i;:::-;20844:2;20839:3;20835:12;20828:19;;20864:148;21008:3;20864:148;:::i;:::-;20857:155;;21022:75;21093:3;21084:6;21022:75;:::i;:::-;21122:2;21117:3;21113:12;21106:19;;21142:93;21231:3;21222:6;21142:93;:::i;:::-;21135:100;;21245:75;21316:3;21307:6;21245:75;:::i;:::-;21345:2;21340:3;21336:12;21329:19;;21365:3;21358:10;;20260:1114;;;;;;;;;;;:::o;21380:1412::-;21784:3;21799:73;21868:3;21859:6;21799:73;:::i;:::-;21897:1;21892:3;21888:11;21881:18;;21909:73;21978:3;21969:6;21909:73;:::i;:::-;22007:1;22002:3;21998:11;21991:18;;22019:102;22117:3;22108:6;22019:102;:::i;:::-;22146:2;22141:3;22137:12;22130:19;;22159:75;22230:3;22221:6;22159:75;:::i;:::-;22259:2;22254:3;22250:12;22243:19;;22272:75;22343:3;22334:6;22272:75;:::i;:::-;22372:2;22367:3;22363:12;22356:19;;22392:148;22536:3;22392:148;:::i;:::-;22385:155;;22550:75;22621:3;22612:6;22550:75;:::i;:::-;22650:2;22645:3;22641:12;22634:19;;22663:75;22734:3;22725:6;22663:75;:::i;:::-;22763:2;22758:3;22754:12;22747:19;;22783:3;22776:10;;21788:1004;;;;;;;;;;:::o;22798:222::-;22891:4;22929:2;22918:9;22914:18;22906:26;;22942:71;23010:1;22999:9;22995:17;22986:6;22942:71;:::i;:::-;22896:124;;;;:::o;23026:332::-;23147:4;23185:2;23174:9;23170:18;23162:26;;23198:71;23266:1;23255:9;23251:17;23242:6;23198:71;:::i;:::-;23279:72;23347:2;23336:9;23332:18;23323:6;23279:72;:::i;:::-;23152:206;;;;;:::o;23364:210::-;23451:4;23489:2;23478:9;23474:18;23466:26;;23502:65;23564:1;23553:9;23549:17;23540:6;23502:65;:::i;:::-;23456:118;;;;:::o;23580:222::-;23673:4;23711:2;23700:9;23696:18;23688:26;;23724:71;23792:1;23781:9;23777:17;23768:6;23724:71;:::i;:::-;23678:124;;;;:::o;23808:553::-;23985:4;24023:3;24012:9;24008:19;24000:27;;24037:71;24105:1;24094:9;24090:17;24081:6;24037:71;:::i;:::-;24118:72;24186:2;24175:9;24171:18;24162:6;24118:72;:::i;:::-;24200;24268:2;24257:9;24253:18;24244:6;24200:72;:::i;:::-;24282;24350:2;24339:9;24335:18;24326:6;24282:72;:::i;:::-;23990:371;;;;;;;:::o;24367:656::-;24570:4;24608:3;24597:9;24593:19;24585:27;;24622:71;24690:1;24679:9;24675:17;24666:6;24622:71;:::i;:::-;24740:9;24734:4;24730:20;24725:2;24714:9;24710:18;24703:48;24768:76;24839:4;24830:6;24768:76;:::i;:::-;24760:84;;24854:80;24930:2;24919:9;24915:18;24906:6;24854:80;:::i;:::-;24944:72;25012:2;25001:9;24997:18;24988:6;24944:72;:::i;:::-;24575:448;;;;;;;:::o;25029:640::-;25224:4;25262:3;25251:9;25247:19;25239:27;;25276:71;25344:1;25333:9;25329:17;25320:6;25276:71;:::i;:::-;25394:9;25388:4;25384:20;25379:2;25368:9;25364:18;25357:48;25422:76;25493:4;25484:6;25422:76;:::i;:::-;25414:84;;25508:72;25576:2;25565:9;25561:18;25552:6;25508:72;:::i;:::-;25590;25658:2;25647:9;25643:18;25634:6;25590:72;:::i;:::-;25229:440;;;;;;;:::o;25675:545::-;25848:4;25886:3;25875:9;25871:19;25863:27;;25900:71;25968:1;25957:9;25953:17;25944:6;25900:71;:::i;:::-;25981:68;26045:2;26034:9;26030:18;26021:6;25981:68;:::i;:::-;26059:72;26127:2;26116:9;26112:18;26103:6;26059:72;:::i;:::-;26141;26209:2;26198:9;26194:18;26185:6;26141:72;:::i;:::-;25853:367;;;;;;;:::o;26226:222::-;26319:4;26357:2;26346:9;26342:18;26334:26;;26370:71;26438:1;26427:9;26423:17;26414:6;26370:71;:::i;:::-;26324:124;;;;:::o;26454:129::-;26488:6;26515:20;;:::i;:::-;26505:30;;26544:33;26572:4;26564:6;26544:33;:::i;:::-;26495:88;;;:::o;26589:75::-;26622:6;26655:2;26649:9;26639:19;;26629:35;:::o;26670:307::-;26731:4;26821:18;26813:6;26810:30;26807:2;;;26843:18;;:::i;:::-;26807:2;26881:29;26903:6;26881:29;:::i;:::-;26873:37;;26965:4;26959;26955:15;26947:23;;26736:241;;;:::o;26983:98::-;27034:6;27068:5;27062:12;27052:22;;27041:40;;;:::o;27087:168::-;27170:11;27204:6;27199:3;27192:19;27244:4;27239:3;27235:14;27220:29;;27182:73;;;;:::o;27261:147::-;27362:11;27399:3;27384:18;;27374:34;;;;:::o;27414:148::-;27516:11;27553:3;27538:18;;27528:34;;;;:::o;27568:305::-;27608:3;27627:20;27645:1;27627:20;:::i;:::-;27622:25;;27661:20;27679:1;27661:20;:::i;:::-;27656:25;;27815:1;27747:66;27743:74;27740:1;27737:81;27734:2;;;27821:18;;:::i;:::-;27734:2;27865:1;27862;27858:9;27851:16;;27612:261;;;;:::o;27879:96::-;27916:7;27945:24;27963:5;27945:24;:::i;:::-;27934:35;;27924:51;;;:::o;27981:90::-;28015:7;28058:5;28051:13;28044:21;28033:32;;28023:48;;;:::o;28077:149::-;28113:7;28153:66;28146:5;28142:78;28131:89;;28121:105;;;:::o;28232:77::-;28269:7;28298:5;28287:16;;28277:32;;;:::o;28315:126::-;28352:7;28392:42;28385:5;28381:54;28370:65;;28360:81;;;:::o;28447:77::-;28484:7;28513:5;28502:16;;28492:32;;;:::o;28530:86::-;28565:7;28605:4;28598:5;28594:16;28583:27;;28573:43;;;:::o;28622:180::-;28699:9;28732:64;28790:5;28732:64;:::i;:::-;28719:77;;28709:93;;;:::o;28808:140::-;28885:9;28918:24;28936:5;28918:24;:::i;:::-;28905:37;;28895:53;;;:::o;28954:121::-;29012:9;29045:24;29063:5;29045:24;:::i;:::-;29032:37;;29022:53;;;:::o;29081:154::-;29165:6;29160:3;29155;29142:30;29227:1;29218:6;29213:3;29209:16;29202:27;29132:103;;;:::o;29241:307::-;29309:1;29319:113;29333:6;29330:1;29327:13;29319:113;;;29418:1;29413:3;29409:11;29403:18;29399:1;29394:3;29390:11;29383:39;29355:2;29352:1;29348:10;29343:15;;29319:113;;;29450:6;29447:1;29444:13;29441:2;;;29530:1;29521:6;29516:3;29512:16;29505:27;29441:2;29290:258;;;;:::o;29554:281::-;29637:27;29659:4;29637:27;:::i;:::-;29629:6;29625:40;29767:6;29755:10;29752:22;29731:18;29719:10;29716:34;29713:62;29710:2;;;29778:18;;:::i;:::-;29710:2;29818:10;29814:2;29807:22;29597:238;;;:::o;29841:233::-;29880:3;29903:24;29921:5;29903:24;:::i;:::-;29894:33;;29949:66;29942:5;29939:77;29936:2;;;30019:18;;:::i;:::-;29936:2;30066:1;30059:5;30055:13;30048:20;;29884:190;;;:::o;30080:100::-;30119:7;30148:26;30168:5;30148:26;:::i;:::-;30137:37;;30127:53;;;:::o;30186:78::-;30224:7;30253:5;30242:16;;30232:32;;;:::o;30270:79::-;30309:7;30338:5;30327:16;;30317:32;;;:::o;30355:94::-;30394:7;30423:20;30437:5;30423:20;:::i;:::-;30412:31;;30402:47;;;:::o;30455:79::-;30494:7;30523:5;30512:16;;30502:32;;;:::o;30540:180::-;30588:77;30585:1;30578:88;30685:4;30682:1;30675:15;30709:4;30706:1;30699:15;30726:180;30774:77;30771:1;30764:88;30871:4;30868:1;30861:15;30895:4;30892:1;30885:15;30912:117;31021:1;31018;31011:12;31035:117;31144:1;31141;31134:12;31158:117;31267:1;31264;31257:12;31281:117;31390:1;31387;31380:12;31404:102;31445:6;31496:2;31492:7;31487:2;31480:5;31476:14;31472:28;31462:38;;31452:54;;;:::o;31512:94::-;31545:8;31593:5;31589:2;31585:14;31564:35;;31554:52;;;:::o;31612:165::-;31752:17;31748:1;31740:6;31736:14;31729:41;31718:59;:::o;31783:161::-;31923:13;31919:1;31911:6;31907:14;31900:37;31889:55;:::o;31950:161::-;32090:13;32086:1;32078:6;32074:14;32067:37;32056:55;:::o;32117:162::-;32257:14;32253:1;32245:6;32241:14;32234:38;32223:56;:::o;32285:164::-;32425:16;32421:1;32413:6;32409:14;32402:40;32391:58;:::o;32455:122::-;32528:24;32546:5;32528:24;:::i;:::-;32521:5;32518:35;32508:2;;32567:1;32564;32557:12;32508:2;32498:79;:::o;32583:122::-;32656:24;32674:5;32656:24;:::i;:::-;32649:5;32646:35;32636:2;;32695:1;32692;32685:12;32636:2;32626:79;:::o;32711:122::-;32784:24;32802:5;32784:24;:::i;:::-;32777:5;32774:35;32764:2;;32823:1;32820;32813:12;32764:2;32754:79;:::o;32839:118::-;32910:22;32926:5;32910:22;:::i;:::-;32903:5;32900:33;32890:2;;32947:1;32944;32937:12;32890:2;32880:77;:::o",
  "source": "pragma solidity ^0.8.6;\n\ncontract EthereumDIDRegistry {\n\n  mapping(address => address) public owners;\n  mapping(address => mapping(bytes32 => mapping(address => uint))) public delegates;\n  mapping(address => uint) public changed;\n  mapping(address => uint) public nonce;\n\n  modifier onlyOwner(address identity, address actor) {\n    require (actor == identityOwner(identity));\n    _;\n  }\n\n  event DIDOwnerChanged(\n    address indexed identity,\n    address owner,\n    uint previousChange\n  );\n\n  event DIDDelegateChanged(\n    address indexed identity,\n    bytes32 delegateType,\n    address delegate,\n    uint validTo,\n    uint previousChange\n  );\n\n  event DIDAttributeChanged(\n    address indexed identity,\n    bytes32 name,\n    bytes value,\n    uint validTo,\n    uint previousChange\n  );\n\n  function identityOwner(address identity) public view returns(address) {\n     address owner = owners[identity];\n     if (owner != 0x0000000000000000000000000000000000000000) {\n       return owner;\n     }\n     return identity;\n  }\n\n  function checkSignature(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, bytes32 hash) internal returns(address) {\n    address signer = ecrecover(hash, sigV, sigR, sigS);\n    require(signer == identityOwner(identity));\n    nonce[signer]++;\n    return signer;\n  }\n\n  function validDelegate(address identity, bytes32 delegateType, address delegate) public view returns(bool) {\n    uint validity = delegates[identity][keccak256(abi.encode(delegateType))][delegate];\n    return (validity > block.timestamp);\n  }\n\n  function changeOwner(address identity, address actor, address newOwner) internal onlyOwner(identity, actor) {\n    owners[identity] = newOwner;\n    emit DIDOwnerChanged(identity, newOwner, changed[identity]);\n    changed[identity] = block.number;\n  }\n\n  function changeOwner(address identity, address newOwner) public {\n    changeOwner(identity, msg.sender, newOwner);\n  }\n\n  function changeOwnerSigned(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, address newOwner) public {\n    bytes32 hash = keccak256(abi.encodePacked(bytes1(0x19), bytes1(0), this, nonce[identityOwner(identity)], identity, \"changeOwner\", newOwner));\n    changeOwner(identity, checkSignature(identity, sigV, sigR, sigS, hash), newOwner);\n  }\n\n  function addDelegate(address identity, address actor, bytes32 delegateType, address delegate, uint validity) internal onlyOwner(identity, actor) {\n    delegates[identity][keccak256(abi.encode(delegateType))][delegate] = block.timestamp + validity;\n    emit DIDDelegateChanged(identity, delegateType, delegate, block.timestamp + validity, changed[identity]);\n    changed[identity] = block.number;\n  }\n\n  function addDelegate(address identity, bytes32 delegateType, address delegate, uint validity) public {\n    addDelegate(identity, msg.sender, delegateType, delegate, validity);\n  }\n\n  function addDelegateSigned(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, bytes32 delegateType, address delegate, uint validity) public {\n    bytes32 hash = keccak256(abi.encodePacked(bytes1(0x19), bytes1(0), this, nonce[identityOwner(identity)], identity, \"addDelegate\", delegateType, delegate, validity));\n    addDelegate(identity, checkSignature(identity, sigV, sigR, sigS, hash), delegateType, delegate, validity);\n  }\n\n  function revokeDelegate(address identity, address actor, bytes32 delegateType, address delegate) internal onlyOwner(identity, actor) {\n    delegates[identity][keccak256(abi.encode(delegateType))][delegate] = block.timestamp;\n    emit DIDDelegateChanged(identity, delegateType, delegate, block.timestamp, changed[identity]);\n    changed[identity] = block.number;\n  }\n\n  function revokeDelegate(address identity, bytes32 delegateType, address delegate) public {\n    revokeDelegate(identity, msg.sender, delegateType, delegate);\n  }\n\n  function revokeDelegateSigned(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, bytes32 delegateType, address delegate) public {\n    bytes32 hash = keccak256(abi.encodePacked(bytes1(0x19), bytes1(0), this, nonce[identityOwner(identity)], identity, \"revokeDelegate\", delegateType, delegate));\n    revokeDelegate(identity, checkSignature(identity, sigV, sigR, sigS, hash), delegateType, delegate);\n  }\n\n  function setAttribute(address identity, address actor, bytes32 name, bytes memory value, uint validity ) internal onlyOwner(identity, actor) {\n    emit DIDAttributeChanged(identity, name, value, block.timestamp + validity, changed[identity]);\n    changed[identity] = block.number;\n  }\n\n  function setAttribute(address identity, bytes32 name, bytes memory value, uint validity) public {\n    setAttribute(identity, msg.sender, name, value, validity);\n  }\n\n  function setAttributeSigned(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, bytes32 name, bytes memory value, uint validity) public {\n    bytes32 hash = keccak256(abi.encodePacked(bytes1(0x19), bytes1(0), this, nonce[identityOwner(identity)], identity, \"setAttribute\", name, value, validity));\n    setAttribute(identity, checkSignature(identity, sigV, sigR, sigS, hash), name, value, validity);\n  }\n\n  function revokeAttribute(address identity, address actor, bytes32 name, bytes memory value ) internal onlyOwner(identity, actor) {\n    emit DIDAttributeChanged(identity, name, value, 0, changed[identity]);\n    changed[identity] = block.number;\n  }\n\n  function revokeAttribute(address identity, bytes32 name, bytes memory value) public {\n    revokeAttribute(identity, msg.sender, name, value);\n  }\n\n function revokeAttributeSigned(address identity, uint8 sigV, bytes32 sigR, bytes32 sigS, bytes32 name, bytes memory value) public {\n    bytes32 hash = keccak256(abi.encodePacked(bytes1(0x19), bytes1(0), this, nonce[identityOwner(identity)], identity, \"revokeAttribute\", name, value)); \n    revokeAttribute(identity, checkSignature(identity, sigV, sigR, sigS, hash), name, value);\n  }\n\n}",
  "sourcePath": "/home/runner/work/ew-credentials/ew-credentials/packages/vc-verification/contracts/EthereumDIDRegistry.sol",
  "ast": {
    "absolutePath": "project:/contracts/EthereumDIDRegistry.sol",
    "exportedSymbols": {
      "EthereumDIDRegistry": [
        750
      ]
    },
    "id": 751,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".6"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 750,
        "linearizedBaseContracts": [
          750
        ],
        "name": "EthereumDIDRegistry",
        "nameLocation": "34:19:0",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "022914a7",
            "id": 5,
            "mutability": "mutable",
            "name": "owners",
            "nameLocation": "94:6:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "59:41:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
              "typeString": "mapping(address => address)"
            },
            "typeName": {
              "id": 4,
              "keyType": {
                "id": 2,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "67:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "59:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                "typeString": "mapping(address => address)"
              },
              "valueType": {
                "id": 3,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "78:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "0d44625b",
            "id": 13,
            "mutability": "mutable",
            "name": "delegates",
            "nameLocation": "176:9:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "104:81:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
            },
            "typeName": {
              "id": 12,
              "keyType": {
                "id": 6,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "112:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "104:64:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
              },
              "valueType": {
                "id": 11,
                "keyType": {
                  "id": 7,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "131:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "123:44:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                  "typeString": "mapping(bytes32 => mapping(address => uint256))"
                },
                "valueType": {
                  "id": 10,
                  "keyType": {
                    "id": 8,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "150:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "142:24:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 9,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "161:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "f96d0f9f",
            "id": 17,
            "mutability": "mutable",
            "name": "changed",
            "nameLocation": "221:7:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "189:39:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 16,
              "keyType": {
                "id": 14,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "197:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "189:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 15,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "208:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "70ae92d2",
            "id": 21,
            "mutability": "mutable",
            "name": "nonce",
            "nameLocation": "264:5:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "232:37:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 20,
              "keyType": {
                "id": 18,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "240:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "232:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 19,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "251:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 36,
              "nodeType": "Block",
              "src": "326:60:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 32,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 28,
                          "name": "actor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25,
                          "src": "341:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 30,
                              "name": "identity",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23,
                              "src": "364:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 29,
                            "name": "identityOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "350:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                              "typeString": "function (address) view returns (address)"
                            }
                          },
                          "id": 31,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "350:23:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "341:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 27,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "332:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 33,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "332:42:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 34,
                  "nodeType": "ExpressionStatement",
                  "src": "332:42:0"
                },
                {
                  "id": 35,
                  "nodeType": "PlaceholderStatement",
                  "src": "380:1:0"
                }
              ]
            },
            "id": 37,
            "name": "onlyOwner",
            "nameLocation": "283:9:0",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 26,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "301:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "293:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "293:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "319:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "311:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "311:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "292:33:0"
            },
            "src": "274:112:0",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "id": 45,
            "name": "DIDOwnerChanged",
            "nameLocation": "396:15:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "433:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "417:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "417:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "455:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "447:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 40,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "447:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "471:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "466:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "466:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "411:78:0"
            },
            "src": "390:100:0"
          },
          {
            "anonymous": false,
            "id": 57,
            "name": "DIDDelegateChanged",
            "nameLocation": "500:18:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 56,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 47,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "540:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "524:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 46,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "524:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "562:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "554:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 48,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "554:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 51,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "588:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "580:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 50,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 53,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "validTo",
                  "nameLocation": "607:7:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "602:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 52,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "602:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 55,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "625:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "620:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "620:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "518:125:0"
            },
            "src": "494:150:0"
          },
          {
            "anonymous": false,
            "id": 69,
            "name": "DIDAttributeChanged",
            "nameLocation": "654:19:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 68,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 59,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "695:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "679:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 58,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 61,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "717:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "709:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 60,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "709:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "733:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "727:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 62,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 65,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "validTo",
                  "nameLocation": "749:7:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "744:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "744:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 67,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "767:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "762:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 66,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "762:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "673:112:0"
            },
            "src": "648:138:0"
          },
          {
            "body": {
              "id": 91,
              "nodeType": "Block",
              "src": "860:158:0",
              "statements": [
                {
                  "assignments": [
                    77
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 77,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "875:5:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 91,
                      "src": "867:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 76,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "867:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 81,
                  "initialValue": {
                    "baseExpression": {
                      "id": 78,
                      "name": "owners",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5,
                      "src": "883:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                        "typeString": "mapping(address => address)"
                      }
                    },
                    "id": 80,
                    "indexExpression": {
                      "id": 79,
                      "name": "identity",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 71,
                      "src": "890:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "883:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "867:32:0"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 84,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 82,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 77,
                      "src": "910:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303030303030",
                      "id": 83,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "919:42:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "value": "0x0000000000000000000000000000000000000000"
                    },
                    "src": "910:51:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 88,
                  "nodeType": "IfStatement",
                  "src": "906:86:0",
                  "trueBody": {
                    "id": 87,
                    "nodeType": "Block",
                    "src": "963:29:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 85,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 77,
                          "src": "979:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 75,
                        "id": 86,
                        "nodeType": "Return",
                        "src": "972:12:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 89,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 71,
                    "src": "1005:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 75,
                  "id": 90,
                  "nodeType": "Return",
                  "src": "998:15:0"
                }
              ]
            },
            "functionSelector": "8733d4e8",
            "id": 92,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "identityOwner",
            "nameLocation": "799:13:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 72,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 71,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "821:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 92,
                  "src": "813:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 70,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "812:18:0"
            },
            "returnParameters": {
              "id": 75,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 74,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 92,
                  "src": "851:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 73,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "851:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "850:9:0"
            },
            "scope": 750,
            "src": "790:228:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 131,
              "nodeType": "Block",
              "src": "1144:149:0",
              "statements": [
                {
                  "assignments": [
                    108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 108,
                      "mutability": "mutable",
                      "name": "signer",
                      "nameLocation": "1158:6:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 131,
                      "src": "1150:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 107,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1150:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 115,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 110,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 102,
                        "src": "1177:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 111,
                        "name": "sigV",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 96,
                        "src": "1183:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 112,
                        "name": "sigR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 98,
                        "src": "1189:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 113,
                        "name": "sigS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 100,
                        "src": "1195:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 109,
                      "name": "ecrecover",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967290,
                      "src": "1167:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
                      }
                    },
                    "id": 114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1167:33:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1150:50:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 117,
                          "name": "signer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 108,
                          "src": "1214:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 119,
                              "name": "identity",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 94,
                              "src": "1238:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 118,
                            "name": "identityOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "1224:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                              "typeString": "function (address) view returns (address)"
                            }
                          },
                          "id": 120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1224:23:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1214:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 116,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1206:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1206:42:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 123,
                  "nodeType": "ExpressionStatement",
                  "src": "1206:42:0"
                },
                {
                  "expression": {
                    "id": 127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "1254:15:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 124,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "1254:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 126,
                      "indexExpression": {
                        "id": 125,
                        "name": "signer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1260:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1254:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 128,
                  "nodeType": "ExpressionStatement",
                  "src": "1254:15:0"
                },
                {
                  "expression": {
                    "id": 129,
                    "name": "signer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 108,
                    "src": "1282:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 106,
                  "id": 130,
                  "nodeType": "Return",
                  "src": "1275:13:0"
                }
              ]
            },
            "id": 132,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkSignature",
            "nameLocation": "1031:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 94,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1054:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1046:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 93,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1046:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 96,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "1070:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1064:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 95,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1064:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 98,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "1084:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1076:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1076:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 100,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "1098:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1090:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 99,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1090:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 102,
                  "mutability": "mutable",
                  "name": "hash",
                  "nameLocation": "1112:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1104:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1045:72:0"
            },
            "returnParameters": {
              "id": 106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 105,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1135:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 104,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1134:9:0"
            },
            "scope": 750,
            "src": "1022:271:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 164,
              "nodeType": "Block",
              "src": "1404:134:0",
              "statements": [
                {
                  "assignments": [
                    144
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 144,
                      "mutability": "mutable",
                      "name": "validity",
                      "nameLocation": "1415:8:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 164,
                      "src": "1410:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 143,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1410:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 157,
                  "initialValue": {
                    "baseExpression": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 145,
                          "name": "delegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13,
                          "src": "1426:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                          }
                        },
                        "id": 147,
                        "indexExpression": {
                          "id": 146,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 134,
                          "src": "1436:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1426:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => uint256))"
                        }
                      },
                      "id": 154,
                      "indexExpression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 151,
                                "name": "delegateType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 136,
                                "src": "1467:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 149,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "1456:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 150,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "1456:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 152,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1456:24:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 148,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "1446:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1446:35:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1426:56:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 156,
                    "indexExpression": {
                      "id": 155,
                      "name": "delegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 138,
                      "src": "1483:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1426:66:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1410:82:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 158,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 144,
                          "src": "1506:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "expression": {
                            "id": 159,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "1517:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "1517:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1506:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 162,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1505:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 142,
                  "id": 163,
                  "nodeType": "Return",
                  "src": "1498:35:0"
                }
              ]
            },
            "functionSelector": "622b2a3c",
            "id": 165,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "validDelegate",
            "nameLocation": "1306:13:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 134,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1328:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1320:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1320:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 136,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "1346:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1338:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 135,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 138,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "1368:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1360:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 137,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1360:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1319:58:0"
            },
            "returnParameters": {
              "id": 142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 141,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1398:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1398:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1397:6:0"
            },
            "scope": 750,
            "src": "1297:241:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 199,
              "nodeType": "Block",
              "src": "1650:141:0",
              "statements": [
                {
                  "expression": {
                    "id": 182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 178,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5,
                        "src": "1656:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                          "typeString": "mapping(address => address)"
                        }
                      },
                      "id": 180,
                      "indexExpression": {
                        "id": 179,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1663:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1656:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 181,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 171,
                      "src": "1675:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1656:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 183,
                  "nodeType": "ExpressionStatement",
                  "src": "1656:27:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 185,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1710:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 186,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 171,
                        "src": "1720:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 187,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "1730:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 189,
                        "indexExpression": {
                          "id": 188,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 167,
                          "src": "1738:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1730:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 184,
                      "name": "DIDOwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1694:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1694:54:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 191,
                  "nodeType": "EmitStatement",
                  "src": "1689:59:0"
                },
                {
                  "expression": {
                    "id": 197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 192,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "1754:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 194,
                      "indexExpression": {
                        "id": 193,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1762:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1754:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 195,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "1774:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "1774:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1754:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 198,
                  "nodeType": "ExpressionStatement",
                  "src": "1754:32:0"
                }
              ]
            },
            "id": 200,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 174,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 167,
                    "src": "1633:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 175,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 169,
                    "src": "1643:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 176,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 173,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "1623:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "1623:26:0"
              }
            ],
            "name": "changeOwner",
            "nameLocation": "1551:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 172,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 167,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1571:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1563:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1563:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 169,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "1589:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1581:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 168,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1581:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 171,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "1604:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1596:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 170,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1596:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1562:51:0"
            },
            "returnParameters": {
              "id": 177,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1650:0:0"
            },
            "scope": 750,
            "src": "1542:249:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 214,
              "nodeType": "Block",
              "src": "1859:54:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 208,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 202,
                        "src": "1877:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "1887:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "1887:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 211,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 204,
                        "src": "1899:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 207,
                      "name": "changeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        200,
                        215
                      ],
                      "referencedDeclaration": 200,
                      "src": "1865:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address,address)"
                      }
                    },
                    "id": 212,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1865:43:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 213,
                  "nodeType": "ExpressionStatement",
                  "src": "1865:43:0"
                }
              ]
            },
            "functionSelector": "f00d4b5d",
            "id": 215,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "changeOwner",
            "nameLocation": "1804:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 202,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1824:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "1816:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 204,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "1842:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "1834:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 203,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1834:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1815:36:0"
            },
            "returnParameters": {
              "id": 206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1859:0:0"
            },
            "scope": 750,
            "src": "1795:118:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 265,
              "nodeType": "Block",
              "src": "2027:238:0",
              "statements": [
                {
                  "assignments": [
                    229
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 229,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "2041:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 265,
                      "src": "2033:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 228,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2033:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 252,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 235,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2082:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 234,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2075:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 233,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "2075:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2075:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 239,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2096:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 238,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2089:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 237,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "2089:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 240,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2089:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 241,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "2100:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 242,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "2106:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 246,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 244,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 217,
                                  "src": "2126:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 243,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "2112:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 245,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2112:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2106:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 247,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 217,
                            "src": "2138:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "6368616e67654f776e6572",
                            "id": 248,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2148:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
                              "typeString": "literal_string \"changeOwner\""
                            },
                            "value": "changeOwner"
                          },
                          {
                            "id": 249,
                            "name": "newOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 225,
                            "src": "2163:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
                              "typeString": "literal_string \"changeOwner\""
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "id": 231,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "2058:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "2058:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 250,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2058:114:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 230,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "2048:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2048:125:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2033:140:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 254,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 217,
                        "src": "2191:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 256,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 217,
                            "src": "2216:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 257,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 219,
                            "src": "2226:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 258,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 221,
                            "src": "2232:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 259,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 223,
                            "src": "2238:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 260,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 229,
                            "src": "2244:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 255,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "2201:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2201:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 262,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 225,
                        "src": "2251:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 253,
                      "name": "changeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        200,
                        215
                      ],
                      "referencedDeclaration": 200,
                      "src": "2179:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address,address)"
                      }
                    },
                    "id": 263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2179:81:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 264,
                  "nodeType": "ExpressionStatement",
                  "src": "2179:81:0"
                }
              ]
            },
            "functionSelector": "240cf1fa",
            "id": 266,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "changeOwnerSigned",
            "nameLocation": "1926:17:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 217,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1952:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1944:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 216,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1944:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 219,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "1968:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1962:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 221,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "1982:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1974:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1974:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 223,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "1996:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1988:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 222,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1988:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 225,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "2010:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "2002:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 224,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2002:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1943:76:0"
            },
            "returnParameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2027:0:0"
            },
            "scope": 750,
            "src": "1917:348:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 321,
              "nodeType": "Block",
              "src": "2414:254:0",
              "statements": [
                {
                  "expression": {
                    "id": 299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "baseExpression": {
                            "id": 283,
                            "name": "delegates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13,
                            "src": "2420:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                            }
                          },
                          "id": 292,
                          "indexExpression": {
                            "id": 284,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 268,
                            "src": "2430:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2420:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                          }
                        },
                        "id": 293,
                        "indexExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 288,
                                  "name": "delegateType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 272,
                                  "src": "2461:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "id": 286,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "2450:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 287,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "2450:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 289,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2450:24:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 285,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "2440:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2440:35:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2420:56:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 294,
                      "indexExpression": {
                        "id": 291,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "2477:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2420:66:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 295,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967292,
                          "src": "2489:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "2489:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 297,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 276,
                        "src": "2507:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2489:26:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2420:95:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 300,
                  "nodeType": "ExpressionStatement",
                  "src": "2420:95:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 302,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 268,
                        "src": "2545:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 303,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 272,
                        "src": "2555:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 304,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "2569:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 308,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 305,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "2579:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "2579:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "id": 307,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 276,
                          "src": "2597:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2579:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 309,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "2607:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 311,
                        "indexExpression": {
                          "id": 310,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 268,
                          "src": "2615:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2607:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 301,
                      "name": "DIDDelegateChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 57,
                      "src": "2526:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:99:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 313,
                  "nodeType": "EmitStatement",
                  "src": "2521:104:0"
                },
                {
                  "expression": {
                    "id": 319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 314,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "2631:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 316,
                      "indexExpression": {
                        "id": 315,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 268,
                        "src": "2639:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2631:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 317,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "2651:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "2651:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2631:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 320,
                  "nodeType": "ExpressionStatement",
                  "src": "2631:32:0"
                }
              ]
            },
            "id": 322,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 279,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 268,
                    "src": "2397:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 280,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 270,
                    "src": "2407:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 281,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 278,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "2387:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "2387:26:0"
              }
            ],
            "name": "addDelegate",
            "nameLocation": "2278:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 268,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2298:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2290:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 267,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2290:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 270,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "2316:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2308:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 269,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2308:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 272,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2331:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2323:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 271,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 274,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2353:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2345:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 273,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2345:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 276,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2368:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2363:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 275,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2363:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2289:88:0"
            },
            "returnParameters": {
              "id": 282,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2414:0:0"
            },
            "scope": 750,
            "src": "2269:399:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 342,
              "nodeType": "Block",
              "src": "2773:78:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 334,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 324,
                        "src": "2791:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 335,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2801:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2801:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 337,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 326,
                        "src": "2813:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 338,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 328,
                        "src": "2827:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 339,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "2837:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 333,
                      "name": "addDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        322,
                        343
                      ],
                      "referencedDeclaration": 322,
                      "src": "2779:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,address,uint256)"
                      }
                    },
                    "id": 340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2779:67:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 341,
                  "nodeType": "ExpressionStatement",
                  "src": "2779:67:0"
                }
              ]
            },
            "functionSelector": "a7068d66",
            "id": 343,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addDelegate",
            "nameLocation": "2681:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 324,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2701:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2693:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 323,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2693:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 326,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2719:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2711:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 325,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2711:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 328,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2741:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2733:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 327,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2733:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2756:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2751:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 329,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2751:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2692:73:0"
            },
            "returnParameters": {
              "id": 332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2773:0:0"
            },
            "scope": 750,
            "src": "2672:179:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 401,
              "nodeType": "Block",
              "src": "3002:286:0",
              "statements": [
                {
                  "assignments": [
                    361
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 361,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "3016:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 401,
                      "src": "3008:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 360,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3008:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 386,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3057:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 366,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3050:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 365,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "3050:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 368,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3050:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 371,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3071:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 370,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3064:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 369,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "3064:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 372,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3064:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 373,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "3075:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 374,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "3081:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 378,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 376,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 345,
                                  "src": "3101:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 375,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "3087:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3087:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3081:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 379,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 345,
                            "src": "3113:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "61646444656c6567617465",
                            "id": 380,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3123:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
                              "typeString": "literal_string \"addDelegate\""
                            },
                            "value": "addDelegate"
                          },
                          {
                            "id": 381,
                            "name": "delegateType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 353,
                            "src": "3138:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 382,
                            "name": "delegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 355,
                            "src": "3152:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 383,
                            "name": "validity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 357,
                            "src": "3162:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
                              "typeString": "literal_string \"addDelegate\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 363,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "3033:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "3033:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3033:138:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 362,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "3023:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3023:149:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3008:164:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 388,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 345,
                        "src": "3190:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 390,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 345,
                            "src": "3215:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 391,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 347,
                            "src": "3225:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 392,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 349,
                            "src": "3231:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 393,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 351,
                            "src": "3237:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 394,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 361,
                            "src": "3243:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 389,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "3200:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3200:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 396,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 353,
                        "src": "3250:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 397,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 355,
                        "src": "3264:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 398,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 357,
                        "src": "3274:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 387,
                      "name": "addDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        322,
                        343
                      ],
                      "referencedDeclaration": 322,
                      "src": "3178:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,address,uint256)"
                      }
                    },
                    "id": 399,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3178:105:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 400,
                  "nodeType": "ExpressionStatement",
                  "src": "3178:105:0"
                }
              ]
            },
            "functionSelector": "9c2c1b2b",
            "id": 402,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addDelegateSigned",
            "nameLocation": "2864:17:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 345,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2890:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2882:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 344,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2882:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 347,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "2906:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2900:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 346,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2900:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 349,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "2920:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2912:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 348,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2912:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 351,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "2934:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2926:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 350,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2926:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 353,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2948:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2940:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 352,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2940:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 355,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2970:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2962:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 354,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2962:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 357,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2985:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2980:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 356,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2881:113:0"
            },
            "returnParameters": {
              "id": 359,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3002:0:0"
            },
            "scope": 750,
            "src": "2855:433:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 451,
              "nodeType": "Block",
              "src": "3425:232:0",
              "statements": [
                {
                  "expression": {
                    "id": 431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "baseExpression": {
                            "id": 417,
                            "name": "delegates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13,
                            "src": "3431:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                            }
                          },
                          "id": 426,
                          "indexExpression": {
                            "id": 418,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 404,
                            "src": "3441:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3431:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                          }
                        },
                        "id": 427,
                        "indexExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 422,
                                  "name": "delegateType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 408,
                                  "src": "3472:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "id": 420,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "3461:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "3461:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3461:24:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 419,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "3451:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 424,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3451:35:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3431:56:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 428,
                      "indexExpression": {
                        "id": 425,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "3488:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3431:66:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 429,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "3500:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 430,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "3500:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3431:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 432,
                  "nodeType": "ExpressionStatement",
                  "src": "3431:84:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 434,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 404,
                        "src": "3545:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 435,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 408,
                        "src": "3555:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 436,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "3569:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 437,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967292,
                          "src": "3579:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 438,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "3579:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 439,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "3596:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 441,
                        "indexExpression": {
                          "id": 440,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 404,
                          "src": "3604:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3596:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 433,
                      "name": "DIDDelegateChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 57,
                      "src": "3526:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3526:88:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 443,
                  "nodeType": "EmitStatement",
                  "src": "3521:93:0"
                },
                {
                  "expression": {
                    "id": 449,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 444,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "3620:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 446,
                      "indexExpression": {
                        "id": 445,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 404,
                        "src": "3628:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3620:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 447,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "3640:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 448,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "3640:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3620:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 450,
                  "nodeType": "ExpressionStatement",
                  "src": "3620:32:0"
                }
              ]
            },
            "id": 452,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 413,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 404,
                    "src": "3408:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 414,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 406,
                    "src": "3418:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 415,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 412,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "3398:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "3398:26:0"
              }
            ],
            "name": "revokeDelegate",
            "nameLocation": "3301:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3324:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3316:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3316:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 406,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "3342:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3334:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3334:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 408,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3357:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3349:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 407,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3349:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 410,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3379:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3371:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 409,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3371:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3315:73:0"
            },
            "returnParameters": {
              "id": 416,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3425:0:0"
            },
            "scope": 750,
            "src": "3292:365:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 469,
              "nodeType": "Block",
              "src": "3750:71:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 462,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 454,
                        "src": "3771:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 463,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "3781:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 464,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "3781:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 465,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 456,
                        "src": "3793:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 466,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 458,
                        "src": "3807:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 461,
                      "name": "revokeDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        452,
                        470
                      ],
                      "referencedDeclaration": 452,
                      "src": "3756:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address)"
                      }
                    },
                    "id": 467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3756:60:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 468,
                  "nodeType": "ExpressionStatement",
                  "src": "3756:60:0"
                }
              ]
            },
            "functionSelector": "80b29f7c",
            "id": 470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeDelegate",
            "nameLocation": "3670:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 454,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3693:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3685:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 453,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3685:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 456,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3711:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3703:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3703:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 458,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3733:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3725:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 457,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3725:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3684:58:0"
            },
            "returnParameters": {
              "id": 460,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3750:0:0"
            },
            "scope": 750,
            "src": "3661:160:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 524,
              "nodeType": "Block",
              "src": "3960:272:0",
              "statements": [
                {
                  "assignments": [
                    486
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 486,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "3974:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 524,
                      "src": "3966:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 485,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3966:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 510,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 492,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4015:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 491,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4008:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 490,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4008:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4008:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 496,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4029:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 495,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4022:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 494,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4022:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 497,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4022:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 498,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "4033:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 499,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "4039:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 503,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 501,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 472,
                                  "src": "4059:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 500,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "4045:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 502,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4045:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4039:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 504,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 472,
                            "src": "4071:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "7265766f6b6544656c6567617465",
                            "id": 505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4081:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
                              "typeString": "literal_string \"revokeDelegate\""
                            },
                            "value": "revokeDelegate"
                          },
                          {
                            "id": 506,
                            "name": "delegateType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 480,
                            "src": "4099:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 507,
                            "name": "delegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 482,
                            "src": "4113:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
                              "typeString": "literal_string \"revokeDelegate\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "id": 488,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "3991:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "3991:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3991:131:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 487,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "3981:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3981:142:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3966:157:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 512,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 472,
                        "src": "4144:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 514,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 472,
                            "src": "4169:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 515,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 474,
                            "src": "4179:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 516,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 476,
                            "src": "4185:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 517,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 478,
                            "src": "4191:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 518,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 486,
                            "src": "4197:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 513,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "4154:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4154:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 520,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 480,
                        "src": "4204:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 521,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 482,
                        "src": "4218:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 511,
                      "name": "revokeDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        452,
                        470
                      ],
                      "referencedDeclaration": 452,
                      "src": "4129:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address)"
                      }
                    },
                    "id": 522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4129:98:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 523,
                  "nodeType": "ExpressionStatement",
                  "src": "4129:98:0"
                }
              ]
            },
            "functionSelector": "93072684",
            "id": 525,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeDelegateSigned",
            "nameLocation": "3834:20:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 472,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3863:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3855:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 471,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3855:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 474,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "3879:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3873:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 473,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3873:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 476,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "3893:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3885:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 475,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3885:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 478,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "3907:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3899:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 477,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3899:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 480,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3921:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3913:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 479,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3913:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 482,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3943:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3935:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3935:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3854:98:0"
            },
            "returnParameters": {
              "id": 484,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3960:0:0"
            },
            "scope": 750,
            "src": "3825:407:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 562,
              "nodeType": "Block",
              "src": "4377:143:0",
              "statements": [
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 543,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 527,
                        "src": "4408:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 544,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 531,
                        "src": "4418:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 545,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 533,
                        "src": "4424:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 546,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "4431:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 547,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "4431:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "id": 548,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 535,
                          "src": "4449:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4431:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 550,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "4459:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 552,
                        "indexExpression": {
                          "id": 551,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 527,
                          "src": "4467:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4459:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 542,
                      "name": "DIDAttributeChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 69,
                      "src": "4388:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,bytes memory,uint256,uint256)"
                      }
                    },
                    "id": 553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4388:89:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 554,
                  "nodeType": "EmitStatement",
                  "src": "4383:94:0"
                },
                {
                  "expression": {
                    "id": 560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 555,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "4483:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 557,
                      "indexExpression": {
                        "id": 556,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 527,
                        "src": "4491:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4483:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 558,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "4503:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "4503:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4483:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 561,
                  "nodeType": "ExpressionStatement",
                  "src": "4483:32:0"
                }
              ]
            },
            "id": 563,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 538,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 527,
                    "src": "4360:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 539,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 529,
                    "src": "4370:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 540,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 537,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "4350:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "4350:26:0"
              }
            ],
            "name": "setAttribute",
            "nameLocation": "4245:12:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 527,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4266:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4258:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 526,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4258:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 529,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "4284:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4276:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 528,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4276:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 531,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4299:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4291:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 530,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4291:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 533,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4318:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4305:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 532,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4305:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 535,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4330:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4325:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 534,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4325:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4257:83:0"
            },
            "returnParameters": {
              "id": 541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4377:0:0"
            },
            "scope": 750,
            "src": "4236:284:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 583,
              "nodeType": "Block",
              "src": "4620:68:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 575,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 565,
                        "src": "4639:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 576,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "4649:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "4649:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 578,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 567,
                        "src": "4661:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 579,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 569,
                        "src": "4667:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 580,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 571,
                        "src": "4674:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 574,
                      "name": "setAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        563,
                        584
                      ],
                      "referencedDeclaration": 563,
                      "src": "4626:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory,uint256)"
                      }
                    },
                    "id": 581,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4626:57:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 582,
                  "nodeType": "ExpressionStatement",
                  "src": "4626:57:0"
                }
              ]
            },
            "functionSelector": "7ad4b0a4",
            "id": 584,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setAttribute",
            "nameLocation": "4533:12:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 565,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4554:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4546:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 564,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4546:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 567,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4572:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4564:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 566,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 569,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4591:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4578:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 568,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 571,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4603:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4598:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 570,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4598:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4545:67:0"
            },
            "returnParameters": {
              "id": 573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4620:0:0"
            },
            "scope": 750,
            "src": "4524:164:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 642,
              "nodeType": "Block",
              "src": "4834:266:0",
              "statements": [
                {
                  "assignments": [
                    602
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 602,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "4848:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 642,
                      "src": "4840:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 601,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4840:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 627,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4889:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 607,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4882:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 606,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4882:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 609,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4882:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 612,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4903:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 611,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4896:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 610,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4896:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4896:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 614,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "4907:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 615,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "4913:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 619,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 617,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 586,
                                  "src": "4933:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 616,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "4919:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 618,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4919:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4913:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 620,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 586,
                            "src": "4945:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "736574417474726962757465",
                            "id": 621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4955:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
                              "typeString": "literal_string \"setAttribute\""
                            },
                            "value": "setAttribute"
                          },
                          {
                            "id": 622,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 594,
                            "src": "4971:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 623,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 596,
                            "src": "4977:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "id": 624,
                            "name": "validity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 598,
                            "src": "4984:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
                              "typeString": "literal_string \"setAttribute\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 604,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "4865:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "4865:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4865:128:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 603,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "4855:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4855:139:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4840:154:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 629,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 586,
                        "src": "5013:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 631,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 586,
                            "src": "5038:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 632,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 588,
                            "src": "5048:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 633,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 590,
                            "src": "5054:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 634,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 592,
                            "src": "5060:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 635,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 602,
                            "src": "5066:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 630,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "5023:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5023:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 637,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 594,
                        "src": "5073:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 638,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 596,
                        "src": "5079:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 639,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 598,
                        "src": "5086:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 628,
                      "name": "setAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        563,
                        584
                      ],
                      "referencedDeclaration": 563,
                      "src": "5000:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory,uint256)"
                      }
                    },
                    "id": 640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5000:95:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 641,
                  "nodeType": "ExpressionStatement",
                  "src": "5000:95:0"
                }
              ]
            },
            "functionSelector": "123b5e98",
            "id": 643,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setAttributeSigned",
            "nameLocation": "4701:18:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 599,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 586,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4728:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4720:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 585,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4720:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 588,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "4744:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4738:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 587,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4738:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 590,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "4758:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4750:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4750:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 592,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "4772:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4764:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 591,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4764:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 594,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4786:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4778:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 593,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4778:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 596,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4805:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4792:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 595,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4792:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 598,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4817:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4812:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 597,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4812:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4719:107:0"
            },
            "returnParameters": {
              "id": 600,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4834:0:0"
            },
            "scope": 750,
            "src": "4692:408:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 675,
              "nodeType": "Block",
              "src": "5233:118:0",
              "statements": [
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 659,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 645,
                        "src": "5264:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 660,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 649,
                        "src": "5274:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 661,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 651,
                        "src": "5280:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5287:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "baseExpression": {
                          "id": 663,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "5290:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 665,
                        "indexExpression": {
                          "id": 664,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 645,
                          "src": "5298:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5290:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 658,
                      "name": "DIDAttributeChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 69,
                      "src": "5244:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,bytes memory,uint256,uint256)"
                      }
                    },
                    "id": 666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5244:64:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 667,
                  "nodeType": "EmitStatement",
                  "src": "5239:69:0"
                },
                {
                  "expression": {
                    "id": 673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 668,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "5314:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 670,
                      "indexExpression": {
                        "id": 669,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 645,
                        "src": "5322:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5314:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 671,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "5334:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 672,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "5334:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5314:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 674,
                  "nodeType": "ExpressionStatement",
                  "src": "5314:32:0"
                }
              ]
            },
            "id": 676,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 654,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 645,
                    "src": "5216:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 655,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 647,
                    "src": "5226:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 656,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 653,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "5206:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "5206:26:0"
              }
            ],
            "name": "revokeAttribute",
            "nameLocation": "5113:15:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 645,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5137:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5129:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 644,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5129:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 647,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "5155:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5147:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 646,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5147:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 649,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5170:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5162:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 648,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5162:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 651,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5189:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5176:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 650,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5176:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5128:68:0"
            },
            "returnParameters": {
              "id": 657,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5233:0:0"
            },
            "scope": 750,
            "src": "5104:247:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 693,
              "nodeType": "Block",
              "src": "5439:61:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 686,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 678,
                        "src": "5461:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 687,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "5471:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "5471:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 689,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 680,
                        "src": "5483:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 690,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 682,
                        "src": "5489:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 685,
                      "name": "revokeAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        676,
                        694
                      ],
                      "referencedDeclaration": 676,
                      "src": "5445:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory)"
                      }
                    },
                    "id": 691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5445:50:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 692,
                  "nodeType": "ExpressionStatement",
                  "src": "5445:50:0"
                }
              ]
            },
            "functionSelector": "00c023da",
            "id": 694,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeAttribute",
            "nameLocation": "5364:15:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 678,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5388:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5380:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 677,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5380:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 680,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5406:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5398:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 679,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5398:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 682,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5425:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5412:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 681,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5412:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5379:52:0"
            },
            "returnParameters": {
              "id": 684,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5439:0:0"
            },
            "scope": 750,
            "src": "5355:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 748,
              "nodeType": "Block",
              "src": "5633:253:0",
              "statements": [
                {
                  "assignments": [
                    710
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 710,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "5647:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 748,
                      "src": "5639:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 709,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5639:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 734,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5688:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 715,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5681:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 714,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "5681:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5681:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 720,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5702:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5695:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 718,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "5695:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5695:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 722,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "5706:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 723,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "5712:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 727,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 725,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 696,
                                  "src": "5732:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 724,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "5718:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 726,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5718:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5712:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 728,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 696,
                            "src": "5744:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "7265766f6b65417474726962757465",
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5754:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
                              "typeString": "literal_string \"revokeAttribute\""
                            },
                            "value": "revokeAttribute"
                          },
                          {
                            "id": 730,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 704,
                            "src": "5773:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 731,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 706,
                            "src": "5779:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
                              "typeString": "literal_string \"revokeAttribute\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "expression": {
                            "id": 712,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "5664:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "5664:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5664:121:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 711,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "5654:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5654:132:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5639:147:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 736,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 696,
                        "src": "5809:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 738,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 696,
                            "src": "5834:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 739,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 698,
                            "src": "5844:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 740,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 700,
                            "src": "5850:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 741,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 702,
                            "src": "5856:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 742,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 710,
                            "src": "5862:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 737,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "5819:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5819:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 744,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 704,
                        "src": "5869:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 745,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 706,
                        "src": "5875:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 735,
                      "name": "revokeAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        676,
                        694
                      ],
                      "referencedDeclaration": 676,
                      "src": "5793:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory)"
                      }
                    },
                    "id": 746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5793:88:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 747,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:88:0"
                }
              ]
            },
            "functionSelector": "e476af5c",
            "id": 749,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeAttributeSigned",
            "nameLocation": "5512:21:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 696,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5542:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5534:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 695,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5534:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 698,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "5558:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5552:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 697,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5552:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 700,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "5572:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5564:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 699,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 702,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "5586:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5578:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5578:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 704,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5600:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5592:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5592:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 706,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5619:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5606:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5606:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5533:92:0"
            },
            "returnParameters": {
              "id": 708,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5633:0:0"
            },
            "scope": 750,
            "src": "5503:383:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 751,
        "src": "25:5864:0",
        "usedErrors": []
      }
    ],
    "src": "0:5889:0"
  },
  "legacyAST": {
    "absolutePath": "project:/contracts/EthereumDIDRegistry.sol",
    "exportedSymbols": {
      "EthereumDIDRegistry": [
        750
      ]
    },
    "id": 751,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".6"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 750,
        "linearizedBaseContracts": [
          750
        ],
        "name": "EthereumDIDRegistry",
        "nameLocation": "34:19:0",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "022914a7",
            "id": 5,
            "mutability": "mutable",
            "name": "owners",
            "nameLocation": "94:6:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "59:41:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
              "typeString": "mapping(address => address)"
            },
            "typeName": {
              "id": 4,
              "keyType": {
                "id": 2,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "67:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "59:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                "typeString": "mapping(address => address)"
              },
              "valueType": {
                "id": 3,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "78:7:0",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "0d44625b",
            "id": 13,
            "mutability": "mutable",
            "name": "delegates",
            "nameLocation": "176:9:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "104:81:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
            },
            "typeName": {
              "id": 12,
              "keyType": {
                "id": 6,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "112:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "104:64:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
              },
              "valueType": {
                "id": 11,
                "keyType": {
                  "id": 7,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "131:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "123:44:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                  "typeString": "mapping(bytes32 => mapping(address => uint256))"
                },
                "valueType": {
                  "id": 10,
                  "keyType": {
                    "id": 8,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "150:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "142:24:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 9,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "161:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "f96d0f9f",
            "id": 17,
            "mutability": "mutable",
            "name": "changed",
            "nameLocation": "221:7:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "189:39:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 16,
              "keyType": {
                "id": 14,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "197:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "189:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 15,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "208:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "70ae92d2",
            "id": 21,
            "mutability": "mutable",
            "name": "nonce",
            "nameLocation": "264:5:0",
            "nodeType": "VariableDeclaration",
            "scope": 750,
            "src": "232:37:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 20,
              "keyType": {
                "id": 18,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "240:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "232:24:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 19,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "251:4:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 36,
              "nodeType": "Block",
              "src": "326:60:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 32,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 28,
                          "name": "actor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25,
                          "src": "341:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 30,
                              "name": "identity",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23,
                              "src": "364:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 29,
                            "name": "identityOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "350:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                              "typeString": "function (address) view returns (address)"
                            }
                          },
                          "id": 31,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "350:23:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "341:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 27,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "332:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 33,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "332:42:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 34,
                  "nodeType": "ExpressionStatement",
                  "src": "332:42:0"
                },
                {
                  "id": 35,
                  "nodeType": "PlaceholderStatement",
                  "src": "380:1:0"
                }
              ]
            },
            "id": 37,
            "name": "onlyOwner",
            "nameLocation": "283:9:0",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 26,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "301:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "293:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "293:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "319:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "311:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "311:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "292:33:0"
            },
            "src": "274:112:0",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "id": 45,
            "name": "DIDOwnerChanged",
            "nameLocation": "396:15:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "433:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "417:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "417:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "455:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "447:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 40,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "447:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "471:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "466:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "466:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "411:78:0"
            },
            "src": "390:100:0"
          },
          {
            "anonymous": false,
            "id": 57,
            "name": "DIDDelegateChanged",
            "nameLocation": "500:18:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 56,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 47,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "540:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "524:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 46,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "524:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "562:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "554:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 48,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "554:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 51,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "588:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "580:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 50,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 53,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "validTo",
                  "nameLocation": "607:7:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "602:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 52,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "602:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 55,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "625:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "620:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "620:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "518:125:0"
            },
            "src": "494:150:0"
          },
          {
            "anonymous": false,
            "id": 69,
            "name": "DIDAttributeChanged",
            "nameLocation": "654:19:0",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 68,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 59,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "695:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "679:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 58,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 61,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "717:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "709:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 60,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "709:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "733:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "727:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 62,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 65,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "validTo",
                  "nameLocation": "749:7:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "744:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "744:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 67,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "previousChange",
                  "nameLocation": "767:14:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 69,
                  "src": "762:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 66,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "762:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "673:112:0"
            },
            "src": "648:138:0"
          },
          {
            "body": {
              "id": 91,
              "nodeType": "Block",
              "src": "860:158:0",
              "statements": [
                {
                  "assignments": [
                    77
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 77,
                      "mutability": "mutable",
                      "name": "owner",
                      "nameLocation": "875:5:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 91,
                      "src": "867:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 76,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "867:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 81,
                  "initialValue": {
                    "baseExpression": {
                      "id": 78,
                      "name": "owners",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5,
                      "src": "883:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                        "typeString": "mapping(address => address)"
                      }
                    },
                    "id": 80,
                    "indexExpression": {
                      "id": 79,
                      "name": "identity",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 71,
                      "src": "890:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "883:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "867:32:0"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 84,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 82,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 77,
                      "src": "910:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303030303030",
                      "id": 83,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "919:42:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "value": "0x0000000000000000000000000000000000000000"
                    },
                    "src": "910:51:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 88,
                  "nodeType": "IfStatement",
                  "src": "906:86:0",
                  "trueBody": {
                    "id": 87,
                    "nodeType": "Block",
                    "src": "963:29:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 85,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 77,
                          "src": "979:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 75,
                        "id": 86,
                        "nodeType": "Return",
                        "src": "972:12:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 89,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 71,
                    "src": "1005:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 75,
                  "id": 90,
                  "nodeType": "Return",
                  "src": "998:15:0"
                }
              ]
            },
            "functionSelector": "8733d4e8",
            "id": 92,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "identityOwner",
            "nameLocation": "799:13:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 72,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 71,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "821:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 92,
                  "src": "813:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 70,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "812:18:0"
            },
            "returnParameters": {
              "id": 75,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 74,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 92,
                  "src": "851:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 73,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "851:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "850:9:0"
            },
            "scope": 750,
            "src": "790:228:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 131,
              "nodeType": "Block",
              "src": "1144:149:0",
              "statements": [
                {
                  "assignments": [
                    108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 108,
                      "mutability": "mutable",
                      "name": "signer",
                      "nameLocation": "1158:6:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 131,
                      "src": "1150:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 107,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1150:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 115,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 110,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 102,
                        "src": "1177:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 111,
                        "name": "sigV",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 96,
                        "src": "1183:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 112,
                        "name": "sigR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 98,
                        "src": "1189:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 113,
                        "name": "sigS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 100,
                        "src": "1195:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 109,
                      "name": "ecrecover",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967290,
                      "src": "1167:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
                      }
                    },
                    "id": 114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1167:33:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1150:50:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 117,
                          "name": "signer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 108,
                          "src": "1214:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 119,
                              "name": "identity",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 94,
                              "src": "1238:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 118,
                            "name": "identityOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "1224:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                              "typeString": "function (address) view returns (address)"
                            }
                          },
                          "id": 120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1224:23:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1214:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 116,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1206:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1206:42:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 123,
                  "nodeType": "ExpressionStatement",
                  "src": "1206:42:0"
                },
                {
                  "expression": {
                    "id": 127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "1254:15:0",
                    "subExpression": {
                      "baseExpression": {
                        "id": 124,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "1254:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 126,
                      "indexExpression": {
                        "id": 125,
                        "name": "signer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1260:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1254:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 128,
                  "nodeType": "ExpressionStatement",
                  "src": "1254:15:0"
                },
                {
                  "expression": {
                    "id": 129,
                    "name": "signer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 108,
                    "src": "1282:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 106,
                  "id": 130,
                  "nodeType": "Return",
                  "src": "1275:13:0"
                }
              ]
            },
            "id": 132,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkSignature",
            "nameLocation": "1031:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 94,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1054:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1046:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 93,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1046:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 96,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "1070:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1064:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 95,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1064:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 98,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "1084:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1076:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1076:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 100,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "1098:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1090:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 99,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1090:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 102,
                  "mutability": "mutable",
                  "name": "hash",
                  "nameLocation": "1112:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1104:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1045:72:0"
            },
            "returnParameters": {
              "id": 106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 105,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 132,
                  "src": "1135:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 104,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1134:9:0"
            },
            "scope": 750,
            "src": "1022:271:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 164,
              "nodeType": "Block",
              "src": "1404:134:0",
              "statements": [
                {
                  "assignments": [
                    144
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 144,
                      "mutability": "mutable",
                      "name": "validity",
                      "nameLocation": "1415:8:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 164,
                      "src": "1410:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 143,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1410:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 157,
                  "initialValue": {
                    "baseExpression": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 145,
                          "name": "delegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13,
                          "src": "1426:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                          }
                        },
                        "id": 147,
                        "indexExpression": {
                          "id": 146,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 134,
                          "src": "1436:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1426:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => uint256))"
                        }
                      },
                      "id": 154,
                      "indexExpression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 151,
                                "name": "delegateType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 136,
                                "src": "1467:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 149,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "1456:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 150,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "1456:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 152,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1456:24:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 148,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "1446:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1446:35:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1426:56:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 156,
                    "indexExpression": {
                      "id": 155,
                      "name": "delegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 138,
                      "src": "1483:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1426:66:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1410:82:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 158,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 144,
                          "src": "1506:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "expression": {
                            "id": 159,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "1517:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "1517:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1506:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 162,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1505:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 142,
                  "id": 163,
                  "nodeType": "Return",
                  "src": "1498:35:0"
                }
              ]
            },
            "functionSelector": "622b2a3c",
            "id": 165,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "validDelegate",
            "nameLocation": "1306:13:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 134,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1328:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1320:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1320:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 136,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "1346:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1338:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 135,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 138,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "1368:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1360:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 137,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1360:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1319:58:0"
            },
            "returnParameters": {
              "id": 142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 141,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 165,
                  "src": "1398:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1398:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1397:6:0"
            },
            "scope": 750,
            "src": "1297:241:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 199,
              "nodeType": "Block",
              "src": "1650:141:0",
              "statements": [
                {
                  "expression": {
                    "id": 182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 178,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5,
                        "src": "1656:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                          "typeString": "mapping(address => address)"
                        }
                      },
                      "id": 180,
                      "indexExpression": {
                        "id": 179,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1663:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1656:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 181,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 171,
                      "src": "1675:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1656:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 183,
                  "nodeType": "ExpressionStatement",
                  "src": "1656:27:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 185,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1710:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 186,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 171,
                        "src": "1720:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 187,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "1730:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 189,
                        "indexExpression": {
                          "id": 188,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 167,
                          "src": "1738:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1730:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 184,
                      "name": "DIDOwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1694:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1694:54:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 191,
                  "nodeType": "EmitStatement",
                  "src": "1689:59:0"
                },
                {
                  "expression": {
                    "id": 197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 192,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "1754:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 194,
                      "indexExpression": {
                        "id": 193,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "1762:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1754:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 195,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "1774:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "1774:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1754:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 198,
                  "nodeType": "ExpressionStatement",
                  "src": "1754:32:0"
                }
              ]
            },
            "id": 200,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 174,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 167,
                    "src": "1633:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 175,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 169,
                    "src": "1643:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 176,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 173,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "1623:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "1623:26:0"
              }
            ],
            "name": "changeOwner",
            "nameLocation": "1551:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 172,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 167,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1571:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1563:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1563:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 169,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "1589:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1581:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 168,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1581:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 171,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "1604:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 200,
                  "src": "1596:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 170,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1596:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1562:51:0"
            },
            "returnParameters": {
              "id": 177,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1650:0:0"
            },
            "scope": 750,
            "src": "1542:249:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 214,
              "nodeType": "Block",
              "src": "1859:54:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 208,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 202,
                        "src": "1877:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "1887:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "1887:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 211,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 204,
                        "src": "1899:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 207,
                      "name": "changeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        200,
                        215
                      ],
                      "referencedDeclaration": 200,
                      "src": "1865:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address,address)"
                      }
                    },
                    "id": 212,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1865:43:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 213,
                  "nodeType": "ExpressionStatement",
                  "src": "1865:43:0"
                }
              ]
            },
            "functionSelector": "f00d4b5d",
            "id": 215,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "changeOwner",
            "nameLocation": "1804:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 202,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1824:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "1816:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 204,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "1842:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "1834:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 203,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1834:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1815:36:0"
            },
            "returnParameters": {
              "id": 206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1859:0:0"
            },
            "scope": 750,
            "src": "1795:118:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 265,
              "nodeType": "Block",
              "src": "2027:238:0",
              "statements": [
                {
                  "assignments": [
                    229
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 229,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "2041:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 265,
                      "src": "2033:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 228,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2033:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 252,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 235,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2082:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 234,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2075:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 233,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "2075:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2075:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 239,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2096:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 238,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2089:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 237,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "2089:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 240,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2089:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 241,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "2100:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 242,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "2106:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 246,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 244,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 217,
                                  "src": "2126:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 243,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "2112:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 245,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2112:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2106:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 247,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 217,
                            "src": "2138:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "6368616e67654f776e6572",
                            "id": 248,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2148:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
                              "typeString": "literal_string \"changeOwner\""
                            },
                            "value": "changeOwner"
                          },
                          {
                            "id": 249,
                            "name": "newOwner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 225,
                            "src": "2163:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_497a2d03cc86298e55cb693e1ab1fe854c7b50c0aa5aad6229104986e0bf69c9",
                              "typeString": "literal_string \"changeOwner\""
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "id": 231,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "2058:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "2058:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 250,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2058:114:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 230,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "2048:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2048:125:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2033:140:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 254,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 217,
                        "src": "2191:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 256,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 217,
                            "src": "2216:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 257,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 219,
                            "src": "2226:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 258,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 221,
                            "src": "2232:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 259,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 223,
                            "src": "2238:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 260,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 229,
                            "src": "2244:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 255,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "2201:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2201:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 262,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 225,
                        "src": "2251:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 253,
                      "name": "changeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        200,
                        215
                      ],
                      "referencedDeclaration": 200,
                      "src": "2179:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address,address)"
                      }
                    },
                    "id": 263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2179:81:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 264,
                  "nodeType": "ExpressionStatement",
                  "src": "2179:81:0"
                }
              ]
            },
            "functionSelector": "240cf1fa",
            "id": 266,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "changeOwnerSigned",
            "nameLocation": "1926:17:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 217,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "1952:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1944:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 216,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1944:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 219,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "1968:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1962:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 221,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "1982:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1974:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1974:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 223,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "1996:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "1988:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 222,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1988:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 225,
                  "mutability": "mutable",
                  "name": "newOwner",
                  "nameLocation": "2010:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 266,
                  "src": "2002:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 224,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2002:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1943:76:0"
            },
            "returnParameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2027:0:0"
            },
            "scope": 750,
            "src": "1917:348:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 321,
              "nodeType": "Block",
              "src": "2414:254:0",
              "statements": [
                {
                  "expression": {
                    "id": 299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "baseExpression": {
                            "id": 283,
                            "name": "delegates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13,
                            "src": "2420:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                            }
                          },
                          "id": 292,
                          "indexExpression": {
                            "id": 284,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 268,
                            "src": "2430:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2420:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                          }
                        },
                        "id": 293,
                        "indexExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 288,
                                  "name": "delegateType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 272,
                                  "src": "2461:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "id": 286,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "2450:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 287,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "2450:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 289,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2450:24:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 285,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "2440:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2440:35:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2420:56:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 294,
                      "indexExpression": {
                        "id": 291,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "2477:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2420:66:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 295,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967292,
                          "src": "2489:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "2489:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 297,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 276,
                        "src": "2507:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2489:26:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2420:95:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 300,
                  "nodeType": "ExpressionStatement",
                  "src": "2420:95:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 302,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 268,
                        "src": "2545:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 303,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 272,
                        "src": "2555:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 304,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "2569:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 308,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 305,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "2579:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "2579:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "id": 307,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 276,
                          "src": "2597:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2579:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 309,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "2607:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 311,
                        "indexExpression": {
                          "id": 310,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 268,
                          "src": "2615:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2607:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 301,
                      "name": "DIDDelegateChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 57,
                      "src": "2526:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:99:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 313,
                  "nodeType": "EmitStatement",
                  "src": "2521:104:0"
                },
                {
                  "expression": {
                    "id": 319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 314,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "2631:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 316,
                      "indexExpression": {
                        "id": 315,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 268,
                        "src": "2639:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2631:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 317,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "2651:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "2651:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2631:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 320,
                  "nodeType": "ExpressionStatement",
                  "src": "2631:32:0"
                }
              ]
            },
            "id": 322,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 279,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 268,
                    "src": "2397:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 280,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 270,
                    "src": "2407:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 281,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 278,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "2387:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "2387:26:0"
              }
            ],
            "name": "addDelegate",
            "nameLocation": "2278:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 268,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2298:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2290:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 267,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2290:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 270,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "2316:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2308:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 269,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2308:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 272,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2331:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2323:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 271,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 274,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2353:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2345:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 273,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2345:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 276,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2368:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 322,
                  "src": "2363:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 275,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2363:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2289:88:0"
            },
            "returnParameters": {
              "id": 282,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2414:0:0"
            },
            "scope": 750,
            "src": "2269:399:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 342,
              "nodeType": "Block",
              "src": "2773:78:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 334,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 324,
                        "src": "2791:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 335,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2801:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2801:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 337,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 326,
                        "src": "2813:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 338,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 328,
                        "src": "2827:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 339,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "2837:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 333,
                      "name": "addDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        322,
                        343
                      ],
                      "referencedDeclaration": 322,
                      "src": "2779:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,address,uint256)"
                      }
                    },
                    "id": 340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2779:67:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 341,
                  "nodeType": "ExpressionStatement",
                  "src": "2779:67:0"
                }
              ]
            },
            "functionSelector": "a7068d66",
            "id": 343,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addDelegate",
            "nameLocation": "2681:11:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 324,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2701:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2693:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 323,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2693:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 326,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2719:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2711:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 325,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2711:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 328,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2741:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2733:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 327,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2733:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2756:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 343,
                  "src": "2751:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 329,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2751:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2692:73:0"
            },
            "returnParameters": {
              "id": 332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2773:0:0"
            },
            "scope": 750,
            "src": "2672:179:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 401,
              "nodeType": "Block",
              "src": "3002:286:0",
              "statements": [
                {
                  "assignments": [
                    361
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 361,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "3016:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 401,
                      "src": "3008:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 360,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3008:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 386,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3057:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 366,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3050:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 365,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "3050:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 368,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3050:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 371,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3071:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 370,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3064:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 369,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "3064:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 372,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3064:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 373,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "3075:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 374,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "3081:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 378,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 376,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 345,
                                  "src": "3101:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 375,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "3087:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3087:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3081:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 379,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 345,
                            "src": "3113:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "61646444656c6567617465",
                            "id": 380,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3123:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
                              "typeString": "literal_string \"addDelegate\""
                            },
                            "value": "addDelegate"
                          },
                          {
                            "id": 381,
                            "name": "delegateType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 353,
                            "src": "3138:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 382,
                            "name": "delegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 355,
                            "src": "3152:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 383,
                            "name": "validity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 357,
                            "src": "3162:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_debebbcfc53a895bddcfa7790235910fa4c752e6acb9c798d39f50a51a8429a2",
                              "typeString": "literal_string \"addDelegate\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 363,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "3033:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "3033:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3033:138:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 362,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "3023:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3023:149:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3008:164:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 388,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 345,
                        "src": "3190:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 390,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 345,
                            "src": "3215:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 391,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 347,
                            "src": "3225:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 392,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 349,
                            "src": "3231:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 393,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 351,
                            "src": "3237:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 394,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 361,
                            "src": "3243:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 389,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "3200:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3200:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 396,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 353,
                        "src": "3250:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 397,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 355,
                        "src": "3264:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 398,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 357,
                        "src": "3274:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 387,
                      "name": "addDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        322,
                        343
                      ],
                      "referencedDeclaration": 322,
                      "src": "3178:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,address,uint256)"
                      }
                    },
                    "id": 399,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3178:105:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 400,
                  "nodeType": "ExpressionStatement",
                  "src": "3178:105:0"
                }
              ]
            },
            "functionSelector": "9c2c1b2b",
            "id": 402,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addDelegateSigned",
            "nameLocation": "2864:17:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 345,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "2890:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2882:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 344,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2882:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 347,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "2906:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2900:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 346,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2900:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 349,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "2920:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2912:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 348,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2912:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 351,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "2934:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2926:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 350,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2926:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 353,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "2948:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2940:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 352,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2940:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 355,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "2970:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2962:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 354,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2962:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 357,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "2985:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 402,
                  "src": "2980:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 356,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2881:113:0"
            },
            "returnParameters": {
              "id": 359,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3002:0:0"
            },
            "scope": 750,
            "src": "2855:433:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 451,
              "nodeType": "Block",
              "src": "3425:232:0",
              "statements": [
                {
                  "expression": {
                    "id": 431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "baseExpression": {
                            "id": 417,
                            "name": "delegates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13,
                            "src": "3431:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$_$",
                              "typeString": "mapping(address => mapping(bytes32 => mapping(address => uint256)))"
                            }
                          },
                          "id": 426,
                          "indexExpression": {
                            "id": 418,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 404,
                            "src": "3441:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3431:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                          }
                        },
                        "id": 427,
                        "indexExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 422,
                                  "name": "delegateType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 408,
                                  "src": "3472:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "id": 420,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "3461:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "3461:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3461:24:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 419,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "3451:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 424,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3451:35:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3431:56:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 428,
                      "indexExpression": {
                        "id": 425,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "3488:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3431:66:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 429,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "3500:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 430,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "3500:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3431:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 432,
                  "nodeType": "ExpressionStatement",
                  "src": "3431:84:0"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 434,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 404,
                        "src": "3545:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 435,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 408,
                        "src": "3555:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 436,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "3569:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 437,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967292,
                          "src": "3579:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 438,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "3579:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 439,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "3596:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 441,
                        "indexExpression": {
                          "id": 440,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 404,
                          "src": "3604:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3596:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 433,
                      "name": "DIDDelegateChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 57,
                      "src": "3526:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3526:88:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 443,
                  "nodeType": "EmitStatement",
                  "src": "3521:93:0"
                },
                {
                  "expression": {
                    "id": 449,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 444,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "3620:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 446,
                      "indexExpression": {
                        "id": 445,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 404,
                        "src": "3628:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3620:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 447,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "3640:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 448,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "3640:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3620:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 450,
                  "nodeType": "ExpressionStatement",
                  "src": "3620:32:0"
                }
              ]
            },
            "id": 452,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 413,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 404,
                    "src": "3408:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 414,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 406,
                    "src": "3418:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 415,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 412,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "3398:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "3398:26:0"
              }
            ],
            "name": "revokeDelegate",
            "nameLocation": "3301:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3324:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3316:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3316:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 406,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "3342:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3334:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3334:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 408,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3357:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3349:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 407,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3349:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 410,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3379:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 452,
                  "src": "3371:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 409,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3371:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3315:73:0"
            },
            "returnParameters": {
              "id": 416,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3425:0:0"
            },
            "scope": 750,
            "src": "3292:365:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 469,
              "nodeType": "Block",
              "src": "3750:71:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 462,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 454,
                        "src": "3771:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 463,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "3781:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 464,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "3781:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 465,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 456,
                        "src": "3793:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 466,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 458,
                        "src": "3807:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 461,
                      "name": "revokeDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        452,
                        470
                      ],
                      "referencedDeclaration": 452,
                      "src": "3756:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address)"
                      }
                    },
                    "id": 467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3756:60:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 468,
                  "nodeType": "ExpressionStatement",
                  "src": "3756:60:0"
                }
              ]
            },
            "functionSelector": "80b29f7c",
            "id": 470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeDelegate",
            "nameLocation": "3670:14:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 454,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3693:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3685:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 453,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3685:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 456,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3711:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3703:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3703:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 458,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3733:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 470,
                  "src": "3725:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 457,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3725:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3684:58:0"
            },
            "returnParameters": {
              "id": 460,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3750:0:0"
            },
            "scope": 750,
            "src": "3661:160:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 524,
              "nodeType": "Block",
              "src": "3960:272:0",
              "statements": [
                {
                  "assignments": [
                    486
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 486,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "3974:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 524,
                      "src": "3966:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 485,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3966:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 510,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 492,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4015:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 491,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4008:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 490,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4008:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4008:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 496,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4029:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 495,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4022:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 494,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4022:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 497,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4022:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 498,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "4033:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 499,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "4039:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 503,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 501,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 472,
                                  "src": "4059:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 500,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "4045:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 502,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4045:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4039:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 504,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 472,
                            "src": "4071:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "7265766f6b6544656c6567617465",
                            "id": 505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4081:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
                              "typeString": "literal_string \"revokeDelegate\""
                            },
                            "value": "revokeDelegate"
                          },
                          {
                            "id": 506,
                            "name": "delegateType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 480,
                            "src": "4099:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 507,
                            "name": "delegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 482,
                            "src": "4113:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f63fea8fc7bd9fe254f7933b81fa1716b5a073ddd1aa14e432aa87d81784f86c",
                              "typeString": "literal_string \"revokeDelegate\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "id": 488,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "3991:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "3991:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3991:131:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 487,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "3981:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3981:142:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3966:157:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 512,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 472,
                        "src": "4144:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 514,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 472,
                            "src": "4169:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 515,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 474,
                            "src": "4179:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 516,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 476,
                            "src": "4185:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 517,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 478,
                            "src": "4191:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 518,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 486,
                            "src": "4197:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 513,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "4154:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4154:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 520,
                        "name": "delegateType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 480,
                        "src": "4204:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 521,
                        "name": "delegate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 482,
                        "src": "4218:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 511,
                      "name": "revokeDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        452,
                        470
                      ],
                      "referencedDeclaration": 452,
                      "src": "4129:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address)"
                      }
                    },
                    "id": 522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4129:98:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 523,
                  "nodeType": "ExpressionStatement",
                  "src": "4129:98:0"
                }
              ]
            },
            "functionSelector": "93072684",
            "id": 525,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeDelegateSigned",
            "nameLocation": "3834:20:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 472,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "3863:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3855:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 471,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3855:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 474,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "3879:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3873:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 473,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3873:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 476,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "3893:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3885:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 475,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3885:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 478,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "3907:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3899:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 477,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3899:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 480,
                  "mutability": "mutable",
                  "name": "delegateType",
                  "nameLocation": "3921:12:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3913:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 479,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3913:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 482,
                  "mutability": "mutable",
                  "name": "delegate",
                  "nameLocation": "3943:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 525,
                  "src": "3935:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3935:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3854:98:0"
            },
            "returnParameters": {
              "id": 484,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3960:0:0"
            },
            "scope": 750,
            "src": "3825:407:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 562,
              "nodeType": "Block",
              "src": "4377:143:0",
              "statements": [
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 543,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 527,
                        "src": "4408:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 544,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 531,
                        "src": "4418:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 545,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 533,
                        "src": "4424:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 546,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "4431:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 547,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "4431:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "id": 548,
                          "name": "validity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 535,
                          "src": "4449:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4431:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "baseExpression": {
                          "id": 550,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "4459:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 552,
                        "indexExpression": {
                          "id": 551,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 527,
                          "src": "4467:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4459:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 542,
                      "name": "DIDAttributeChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 69,
                      "src": "4388:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,bytes memory,uint256,uint256)"
                      }
                    },
                    "id": 553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4388:89:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 554,
                  "nodeType": "EmitStatement",
                  "src": "4383:94:0"
                },
                {
                  "expression": {
                    "id": 560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 555,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "4483:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 557,
                      "indexExpression": {
                        "id": 556,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 527,
                        "src": "4491:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4483:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 558,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "4503:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "4503:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4483:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 561,
                  "nodeType": "ExpressionStatement",
                  "src": "4483:32:0"
                }
              ]
            },
            "id": 563,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 538,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 527,
                    "src": "4360:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 539,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 529,
                    "src": "4370:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 540,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 537,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "4350:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "4350:26:0"
              }
            ],
            "name": "setAttribute",
            "nameLocation": "4245:12:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 527,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4266:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4258:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 526,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4258:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 529,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "4284:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4276:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 528,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4276:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 531,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4299:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4291:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 530,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4291:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 533,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4318:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4305:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 532,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4305:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 535,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4330:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 563,
                  "src": "4325:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 534,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4325:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4257:83:0"
            },
            "returnParameters": {
              "id": 541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4377:0:0"
            },
            "scope": 750,
            "src": "4236:284:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 583,
              "nodeType": "Block",
              "src": "4620:68:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 575,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 565,
                        "src": "4639:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 576,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "4649:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "4649:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 578,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 567,
                        "src": "4661:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 579,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 569,
                        "src": "4667:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 580,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 571,
                        "src": "4674:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 574,
                      "name": "setAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        563,
                        584
                      ],
                      "referencedDeclaration": 563,
                      "src": "4626:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory,uint256)"
                      }
                    },
                    "id": 581,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4626:57:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 582,
                  "nodeType": "ExpressionStatement",
                  "src": "4626:57:0"
                }
              ]
            },
            "functionSelector": "7ad4b0a4",
            "id": 584,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setAttribute",
            "nameLocation": "4533:12:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 565,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4554:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4546:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 564,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4546:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 567,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4572:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4564:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 566,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 569,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4591:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4578:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 568,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 571,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4603:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "4598:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 570,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4598:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4545:67:0"
            },
            "returnParameters": {
              "id": 573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4620:0:0"
            },
            "scope": 750,
            "src": "4524:164:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 642,
              "nodeType": "Block",
              "src": "4834:266:0",
              "statements": [
                {
                  "assignments": [
                    602
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 602,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "4848:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 642,
                      "src": "4840:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 601,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4840:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 627,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4889:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 607,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4882:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 606,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4882:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 609,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4882:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 612,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4903:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 611,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4896:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 610,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "4896:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 613,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4896:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 614,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "4907:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 615,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "4913:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 619,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 617,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 586,
                                  "src": "4933:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 616,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "4919:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 618,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4919:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4913:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 620,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 586,
                            "src": "4945:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "736574417474726962757465",
                            "id": 621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4955:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
                              "typeString": "literal_string \"setAttribute\""
                            },
                            "value": "setAttribute"
                          },
                          {
                            "id": 622,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 594,
                            "src": "4971:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 623,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 596,
                            "src": "4977:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "id": 624,
                            "name": "validity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 598,
                            "src": "4984:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_e5bbb0cf2a185ea034bc61efc4cb764352403a5c06c1da63a3fd765abbac4ea6",
                              "typeString": "literal_string \"setAttribute\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 604,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "4865:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "4865:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4865:128:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 603,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "4855:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4855:139:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4840:154:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 629,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 586,
                        "src": "5013:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 631,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 586,
                            "src": "5038:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 632,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 588,
                            "src": "5048:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 633,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 590,
                            "src": "5054:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 634,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 592,
                            "src": "5060:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 635,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 602,
                            "src": "5066:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 630,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "5023:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5023:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 637,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 594,
                        "src": "5073:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 638,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 596,
                        "src": "5079:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 639,
                        "name": "validity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 598,
                        "src": "5086:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 628,
                      "name": "setAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        563,
                        584
                      ],
                      "referencedDeclaration": 563,
                      "src": "5000:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory,uint256)"
                      }
                    },
                    "id": 640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5000:95:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 641,
                  "nodeType": "ExpressionStatement",
                  "src": "5000:95:0"
                }
              ]
            },
            "functionSelector": "123b5e98",
            "id": 643,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setAttributeSigned",
            "nameLocation": "4701:18:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 599,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 586,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "4728:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4720:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 585,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4720:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 588,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "4744:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4738:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 587,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4738:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 590,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "4758:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4750:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4750:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 592,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "4772:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4764:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 591,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4764:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 594,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "4786:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4778:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 593,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4778:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 596,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4805:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4792:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 595,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4792:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 598,
                  "mutability": "mutable",
                  "name": "validity",
                  "nameLocation": "4817:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 643,
                  "src": "4812:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 597,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4812:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4719:107:0"
            },
            "returnParameters": {
              "id": 600,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4834:0:0"
            },
            "scope": 750,
            "src": "4692:408:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 675,
              "nodeType": "Block",
              "src": "5233:118:0",
              "statements": [
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 659,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 645,
                        "src": "5264:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 660,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 649,
                        "src": "5274:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 661,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 651,
                        "src": "5280:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5287:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "baseExpression": {
                          "id": 663,
                          "name": "changed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "5290:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 665,
                        "indexExpression": {
                          "id": 664,
                          "name": "identity",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 645,
                          "src": "5298:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5290:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 658,
                      "name": "DIDAttributeChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 69,
                      "src": "5244:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,bytes memory,uint256,uint256)"
                      }
                    },
                    "id": 666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5244:64:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 667,
                  "nodeType": "EmitStatement",
                  "src": "5239:69:0"
                },
                {
                  "expression": {
                    "id": 673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 668,
                        "name": "changed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17,
                        "src": "5314:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 670,
                      "indexExpression": {
                        "id": 669,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 645,
                        "src": "5322:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5314:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 671,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967292,
                        "src": "5334:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 672,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "src": "5334:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5314:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 674,
                  "nodeType": "ExpressionStatement",
                  "src": "5314:32:0"
                }
              ]
            },
            "id": 676,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 654,
                    "name": "identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 645,
                    "src": "5216:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 655,
                    "name": "actor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 647,
                    "src": "5226:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 656,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 653,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 37,
                  "src": "5206:9:0"
                },
                "nodeType": "ModifierInvocation",
                "src": "5206:26:0"
              }
            ],
            "name": "revokeAttribute",
            "nameLocation": "5113:15:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 645,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5137:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5129:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 644,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5129:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 647,
                  "mutability": "mutable",
                  "name": "actor",
                  "nameLocation": "5155:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5147:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 646,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5147:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 649,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5170:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5162:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 648,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5162:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 651,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5189:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 676,
                  "src": "5176:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 650,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5176:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5128:68:0"
            },
            "returnParameters": {
              "id": 657,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5233:0:0"
            },
            "scope": 750,
            "src": "5104:247:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 693,
              "nodeType": "Block",
              "src": "5439:61:0",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 686,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 678,
                        "src": "5461:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 687,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "5471:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "5471:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 689,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 680,
                        "src": "5483:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 690,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 682,
                        "src": "5489:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 685,
                      "name": "revokeAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        676,
                        694
                      ],
                      "referencedDeclaration": 676,
                      "src": "5445:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory)"
                      }
                    },
                    "id": 691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5445:50:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 692,
                  "nodeType": "ExpressionStatement",
                  "src": "5445:50:0"
                }
              ]
            },
            "functionSelector": "00c023da",
            "id": 694,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeAttribute",
            "nameLocation": "5364:15:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 678,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5388:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5380:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 677,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5380:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 680,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5406:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5398:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 679,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5398:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 682,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5425:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 694,
                  "src": "5412:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 681,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5412:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5379:52:0"
            },
            "returnParameters": {
              "id": 684,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5439:0:0"
            },
            "scope": 750,
            "src": "5355:145:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 748,
              "nodeType": "Block",
              "src": "5633:253:0",
              "statements": [
                {
                  "assignments": [
                    710
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 710,
                      "mutability": "mutable",
                      "name": "hash",
                      "nameLocation": "5647:4:0",
                      "nodeType": "VariableDeclaration",
                      "scope": 748,
                      "src": "5639:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 709,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5639:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 734,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30783139",
                                "id": 716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5688:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "0x19"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                }
                              ],
                              "id": 715,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5681:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 714,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "5681:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5681:12:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 720,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5702:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5695:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 718,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "5695:6:0",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5695:9:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          {
                            "id": 722,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "5706:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 723,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "5712:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 727,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 725,
                                  "name": "identity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 696,
                                  "src": "5732:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 724,
                                "name": "identityOwner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 92,
                                "src": "5718:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$",
                                  "typeString": "function (address) view returns (address)"
                                }
                              },
                              "id": 726,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5718:23:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5712:30:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 728,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 696,
                            "src": "5744:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "hexValue": "7265766f6b65417474726962757465",
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5754:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
                              "typeString": "literal_string \"revokeAttribute\""
                            },
                            "value": "revokeAttribute"
                          },
                          {
                            "id": 730,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 704,
                            "src": "5773:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 731,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 706,
                            "src": "5779:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            },
                            {
                              "typeIdentifier": "t_contract$_EthereumDIDRegistry_$750",
                              "typeString": "contract EthereumDIDRegistry"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_168e4cc0ad03cc4b6896d89f8a470b9997cd8bbe87ac639c5474674fa958f860",
                              "typeString": "literal_string \"revokeAttribute\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "expression": {
                            "id": 712,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "5664:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "5664:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5664:121:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 711,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "5654:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5654:132:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5639:147:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 736,
                        "name": "identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 696,
                        "src": "5809:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 738,
                            "name": "identity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 696,
                            "src": "5834:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 739,
                            "name": "sigV",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 698,
                            "src": "5844:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "id": 740,
                            "name": "sigR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 700,
                            "src": "5850:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 741,
                            "name": "sigS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 702,
                            "src": "5856:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 742,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 710,
                            "src": "5862:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 737,
                          "name": "checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "5819:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (address,uint8,bytes32,bytes32,bytes32) returns (address)"
                          }
                        },
                        "id": 743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5819:48:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 744,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 704,
                        "src": "5869:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 745,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 706,
                        "src": "5875:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 735,
                      "name": "revokeAttribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        676,
                        694
                      ],
                      "referencedDeclaration": 676,
                      "src": "5793:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes memory)"
                      }
                    },
                    "id": 746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5793:88:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 747,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:88:0"
                }
              ]
            },
            "functionSelector": "e476af5c",
            "id": 749,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "revokeAttributeSigned",
            "nameLocation": "5512:21:0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 696,
                  "mutability": "mutable",
                  "name": "identity",
                  "nameLocation": "5542:8:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5534:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 695,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5534:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 698,
                  "mutability": "mutable",
                  "name": "sigV",
                  "nameLocation": "5558:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5552:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 697,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5552:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 700,
                  "mutability": "mutable",
                  "name": "sigR",
                  "nameLocation": "5572:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5564:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 699,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 702,
                  "mutability": "mutable",
                  "name": "sigS",
                  "nameLocation": "5586:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5578:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5578:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 704,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "5600:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5592:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5592:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 706,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "5619:5:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 749,
                  "src": "5606:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5606:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5533:92:0"
            },
            "returnParameters": {
              "id": 708,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5633:0:0"
            },
            "scope": 750,
            "src": "5503:383:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 751,
        "src": "25:5864:0",
        "usedErrors": []
      }
    ],
    "src": "0:5889:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.6+commit.11564f7e.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.4",
  "updatedAt": "2022-08-10T06:28:49.788Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}