{
  "contractName": "HashRegistrar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "sealedBids",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registryStarted",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "launchLength",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rootNode",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_ens",
          "type": "address"
        },
        {
          "name": "_rootNode",
          "type": "bytes32"
        },
        {
          "name": "_startDate",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "AuctionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "deposit",
          "type": "uint256"
        }
      ],
      "name": "NewBid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "BidRevealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "HashReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashInvalidated",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "startAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashes",
          "type": "bytes32[]"
        }
      ],
      "name": "startAuctions",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "newBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hashes",
          "type": "bytes32[]"
        },
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "startAuctionsAndBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "unsealBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "bidder",
          "type": "address"
        },
        {
          "name": "seal",
          "type": "bytes32"
        }
      ],
      "name": "cancelBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "finalizeAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "releaseDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "unhashedName",
          "type": "string"
        }
      ],
      "name": "invalidateName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "labels",
          "type": "bytes32[]"
        }
      ],
      "name": "eraseNode",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "transferRegistrars",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "deed",
          "type": "address"
        },
        {
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "acceptRegistrarTransfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "entries",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        },
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "isAllowed",
      "outputs": [
        {
          "name": "allowed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "getAllowedTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        },
        {
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "shaBid",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405160608062004675833981018060405260608110156200003357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160018190555060008111620000af5742620000b1565b805b6004819055505050506145ab80620000ca6000396000f3fe608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630230a07c1461013857806313c89a8f1461017357806315f73331146101c257806322ec1244146102485780632525f5c1146102cb578063267b6922146103265780633f15457f146103cb57806347872b42146104225780635ddae283146104715780635e431709146104ac57806361d585da1461054757806379ce9fac146105a457806393503337146105ff578063983b94fb1461065c5780639c67f06f14610697578063ae1a0b0c146106c2578063ce92dced146106f9578063de10f04b14610727578063e27fe50f146107ad578063ea9e107a14610833578063ede8acdb14610898578063faff50a8146108d3578063febefd61146108fe575b600080fd5b34801561014457600080fd5b506101716004803603602081101561015b57600080fd5b8101908080359060200190929190505050610981565b005b34801561017f57600080fd5b506101ac6004803603602081101561019657600080fd5b8101908080359060200190929190505050610d3e565b6040518082815260200191505060405180910390f35b3480156101ce57600080fd5b50610246600480360360208110156101e557600080fd5b810190808035906020019064010000000081111561020257600080fd5b82018360208201111561021457600080fd5b8035906020019184600183028401116401000000008311171561023657600080fd5b9091929391929390505050610d72565b005b34801561025457600080fd5b506102b56004803603608081101561026b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611251565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b50610324600480360360408110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d7565b005b34801561033257600080fd5b5061035f6004803603602081101561034957600080fd5b810190808035906020019092919050505061166c565b6040518086600581111561036f57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103d757600080fd5b506103e06116db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042e57600080fd5b5061046f6004803603606081101561044557600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611700565b005b34801561047d57600080fd5b506104aa6004803603602081101561049457600080fd5b810190808035906020019092919050505061204f565b005b3480156104b857600080fd5b50610505600480360360408110156104cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055357600080fd5b506105806004803603602081101561056a57600080fd5b8101908080359060200190929190505050612513565b6040518082600581111561059057fe5b60ff16815260200191505060405180910390f35b3480156105b057600080fd5b506105fd600480360360408110156105c757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259e565b005b34801561060b57600080fd5b506106426004803603604081101561062257600080fd5b81019080803590602001909291908035906020019092919050505061280f565b604051808215151515815260200191505060405180910390f35b34801561066857600080fd5b506106956004803603602081101561067f57600080fd5b8101908080359060200190929190505050612824565b005b3480156106a357600080fd5b506106ac612c39565b6040518082815260200191505060405180910390f35b3480156106ce57600080fd5b506106d7612c3f565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107256004803603602081101561070f57600080fd5b8101908080359060200190929190505050612c46565b005b34801561073357600080fd5b506107ab6004803603602081101561074a57600080fd5b810190808035906020019064010000000081111561076757600080fd5b82018360208201111561077957600080fd5b8035906020019184602083028401116401000000008311171561079b57600080fd5b9091929391929390505050612c52565b005b3480156107b957600080fd5b50610831600480360360208110156107d057600080fd5b81019080803590602001906401000000008111156107ed57600080fd5b8201836020820111156107ff57600080fd5b8035906020019184602083028401116401000000008311171561082157600080fd5b9091929391929390505050612d05565b005b34801561083f57600080fd5b506108966004803603606081101561085657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d53565b005b3480156108a457600080fd5b506108d1600480360360208110156108bb57600080fd5b8101908080359060200190929190505050612d58565b005b3480156108df57600080fd5b506108e8612d64565b6040518082815260200191505060405180910390f35b61097f6004803603604081101561091457600080fd5b810190808035906020019064010000000081111561093157600080fd5b82018360208201111561094357600080fd5b8035906020019184602083028401116401000000008311171561096557600080fd5b909192939192939080359060200190929190505050612d6a565b005b806002600581111561098f57fe5b61099882612513565b60058111156109a357fe5b148015610aad57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610a4357600080fd5b505afa158015610a57573d6000803e3d6000fd5b505050506040513d6020811015610a6d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ab857600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610c0757503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610bb357600080fd5b505afa158015610bc7573d6000803e3d6000fd5b505050506040513d6020811015610bdd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b1515610c1257600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7384612dc2565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610ce457600080fd5b505af1158015610cf8573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360019004908060020a82049150506249d40063ffffffff1602908060020a8204915050600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610dd357fe5b610ddc83612513565b6005811115610de757fe5b141515610df357600080fd5b6006610e4285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061319a565b11151515610e4f57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610ec682612dc2565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561118a57610f358160020154662386f26fc10000613258565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c8097260028360020154811515610f8d57fe5b0460006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610fed57600080fd5b505af1158015611001573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156114355750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113f457600080fd5b505afa158015611408573d6000803e3d6000fd5b505050506040513d602081101561141e57600080fd5b810190808051906020019092919050505001014210155b151561144057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156114db57600080fd5b505af11580156114ef573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561156357600080fd5b505af1158015611577573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b60008060008060008060026000888152602001908152602001600020905061169387612513565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061170e84338585611251565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117c157600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600087815260200190815260200160002090506000611910868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156118d057600080fd5b505afa1580156118e4573d6000803e3d6000fd5b505050506040513d60208110156118fa57600080fd5b8101908080519060200190929190505050613274565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b5050505060006119b188612513565b9050600260058111156119c057fe5b8160058111156119cc57fe5b1415611aba578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3612045565b60046005811115611ac757fe5b816005811115611ad357fe5b141515611adf57600080fd5b662386f26fc10000821080611b9e57506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d6020811015611b8b57600080fd5b8101908080519060200190929190505050115b15611c8c578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611c1457600080fd5b505af1158015611c28573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3612044565b8260030154821115611e5f57600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611da65760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3612043565b8260020154821115611f5d578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3612042565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611fce57600080fd5b505af1158015611fe2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b806002600581111561205d57fe5b61206682612513565b600581111561207157fe5b14801561217b57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561211157600080fd5b505afa158015612125573d6000803e3d6000fd5b505050506040513d602081101561213b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561218657600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561221857600080fd5b505afa15801561222c573d6000803e3d6000fd5b505050506040513d602081101561224257600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561229057600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561245157600080fd5b505af1158015612465573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260008481526020019081526020016000209050612535834261280f565b1515612545576005915050612599565b806001015442101561257c576202a30063ffffffff16816001015403421015612572576001915050612599565b6004915050612599565b600081600301541415612593576000915050612599565b60029150505b919050565b81600260058111156125ac57fe5b6125b582612513565b60058111156125c057fe5b1480156126ca57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561266057600080fd5b505afa158015612674573d6000803e3d6000fd5b505050506040513d602081101561268a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156126d557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561271157600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156127e757600080fd5b505af11580156127fb573d6000803e3d6000fd5b505050506128098484613290565b50505050565b600061281a83610d3e565b8211905092915050565b806002600581111561283257fe5b61283b82612513565b600581111561284657fe5b14801561295057506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156128e657600080fd5b505afa1580156128fa573d6000803e3d6000fd5b505050506040513d602081101561291057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561295b57600080fd5b60006002600084815260200190815260200160002090506129878160020154662386f26fc10000613258565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b158015612a3357600080fd5b505af1158015612a47573d6000803e3d6000fd5b50505050612b15838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612ad557600080fd5b505afa158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b8101908080519060200190929190505050613290565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612b9b57600080fd5b505afa158015612baf573d6000803e3d6000fd5b505050506040513d6020811015612bc557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b612c4f81613479565b50565b60008282905014151515612c6557600080fd5b60026005811115612c7257fe5b612c958383600186869050038181101515612c8957fe5b90506020020135612513565b6005811115612ca057fe5b14151515612cad57600080fd5b612d0160018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505060015461367e565b5050565b612d4f828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050613998565b5050565b505050565b612d61816139d8565b50565b60015481565b612db4838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050613998565b612dbd81613479565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015612e6957600080fd5b505afa158015612e7d573d6000803e3d6000fd5b505050506040513d6020811015612e9357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415613197576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612f8e57600080fd5b505af1158015612fa2573d6000803e3d6000fd5b5050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156130a057600080fd5b505af11580156130b4573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561317d57600080fd5b505af1158015613191573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b8183101561324d57600060ff845116905060808160ff1610156131d85760018401935061323f565b60e08160ff1610156131ef5760028401935061323e565b60f08160ff1610156132065760038401935061323d565b60f88160ff16101561321d5760048401935061323c565b60fc8160ff1610156132345760058401935061323b565b6006840193505b5b5b5b5b5080806001019150506131b0565b809350505050919050565b60008183111561326a5782905061326e565b8190505b92915050565b6000818310156132865782905061328a565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561333757600080fd5b505afa15801561334b573d6000803e3d6000fd5b505050506040513d602081101561336157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415613475576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561345c57600080fd5b505af1158015613470573d6000803e3d6000fd5b505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561352457600080fd5b662386f26fc10000341015151561353a57600080fd5b60003433613546613bd6565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f080158015613597573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811015156136ca57fe5b90602001906020020151306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561376157600080fd5b505af1158015613775573d6000803e3d6000fd5b5050505080828481518110151561378857fe5b90602001906020020151604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905060008311156137d9576137d860018403838361367e565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561389e57600080fd5b505af11580156138b2573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561397b57600080fd5b505af115801561398f573d6000803e3d6000fd5b50505050505050565b60008090505b81518110156139d4576139c782828151811015156139b857fe5b906020019060200201516139d8565b808060010191505061399e565b5050565b60045442101580156139f25750630784ce00600454014211155b8015613af357503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015613aa057600080fd5b505afa158015613ab4573d6000803e3d6000fd5b505050506040513d6020811015613aca57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b1515613afe57600080fd5b6000613b0982612513565b905060016005811115613b1857fe5b816005811115613b2457fe5b1415613b305750613bd3565b60006005811115613b3d57fe5b816005811115613b4957fe5b141515613b5557600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b60405161099980613be78339019056fe60806040526040516020806109998339810180604052602081101561002357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff02191690831515021790555034600481905550506108ab806100ee6000396000f3fe608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305b344101461009e5780630b5ab3d5146100c957806313af4035146100e05780633fa4f24514610131578063674f220f1461015c5780638da5cb5b146101b3578063b0c809721461020a578063bbe4277114610251578063faab9d391461028c575b600080fd5b3480156100aa57600080fd5b506100b36102dd565b6040518082815260200191505060405180910390f35b3480156100d557600080fd5b506100de6102e2565b005b3480156100ec57600080fd5b5061012f6004803603602081101561010357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102ec565b005b34801561013d57600080fd5b5061014661048c565b6040518082815260200191505060405180910390f35b34801561016857600080fd5b50610171610496565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bf57600080fd5b506101c86104c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021657600080fd5b5061024f6004803603604081101561022d57600080fd5b81019080803590602001909291908035151590602001909291905050506104e9565b005b34801561025d57600080fd5b5061028a6004803603602081101561027457600080fd5b81019080803590602001909291905050506105ff565b005b34801561029857600080fd5b506102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610734565b005b600090565b6102ea6107d4565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561034857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561038457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561054557600080fd5b600560009054906101000a900460ff16151561056057600080fd5b816004541015151561057157600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc833073ffffffffffffffffffffffffffffffffffffffff1631039081150290604051600060405180830381858888f19350505050806105f0575080155b15156105fb57600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561065b57600080fd5b600560009054906101000a900460ff16151561067657600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e83073ffffffffffffffffffffffffffffffffffffffff1631846103e803028115156106d757fe5b049081150290604051600060405180830381858888f1935050505015156106fd57600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a16107316107d4565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079057600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161515156107f057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501561087d5761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea165627a7a723058204b07586b050f162bf145a4b7c1aafd28368df237685ac5efa796ffcdb45caa170029a165627a7a72305820f9d0dfc03d206320242f04cde93b393b4b61c79d90121be950ecac98e97709a10029",
  "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630230a07c1461013857806313c89a8f1461017357806315f73331146101c257806322ec1244146102485780632525f5c1146102cb578063267b6922146103265780633f15457f146103cb57806347872b42146104225780635ddae283146104715780635e431709146104ac57806361d585da1461054757806379ce9fac146105a457806393503337146105ff578063983b94fb1461065c5780639c67f06f14610697578063ae1a0b0c146106c2578063ce92dced146106f9578063de10f04b14610727578063e27fe50f146107ad578063ea9e107a14610833578063ede8acdb14610898578063faff50a8146108d3578063febefd61146108fe575b600080fd5b34801561014457600080fd5b506101716004803603602081101561015b57600080fd5b8101908080359060200190929190505050610981565b005b34801561017f57600080fd5b506101ac6004803603602081101561019657600080fd5b8101908080359060200190929190505050610d3e565b6040518082815260200191505060405180910390f35b3480156101ce57600080fd5b50610246600480360360208110156101e557600080fd5b810190808035906020019064010000000081111561020257600080fd5b82018360208201111561021457600080fd5b8035906020019184600183028401116401000000008311171561023657600080fd5b9091929391929390505050610d72565b005b34801561025457600080fd5b506102b56004803603608081101561026b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611251565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b50610324600480360360408110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d7565b005b34801561033257600080fd5b5061035f6004803603602081101561034957600080fd5b810190808035906020019092919050505061166c565b6040518086600581111561036f57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103d757600080fd5b506103e06116db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042e57600080fd5b5061046f6004803603606081101561044557600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611700565b005b34801561047d57600080fd5b506104aa6004803603602081101561049457600080fd5b810190808035906020019092919050505061204f565b005b3480156104b857600080fd5b50610505600480360360408110156104cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055357600080fd5b506105806004803603602081101561056a57600080fd5b8101908080359060200190929190505050612513565b6040518082600581111561059057fe5b60ff16815260200191505060405180910390f35b3480156105b057600080fd5b506105fd600480360360408110156105c757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259e565b005b34801561060b57600080fd5b506106426004803603604081101561062257600080fd5b81019080803590602001909291908035906020019092919050505061280f565b604051808215151515815260200191505060405180910390f35b34801561066857600080fd5b506106956004803603602081101561067f57600080fd5b8101908080359060200190929190505050612824565b005b3480156106a357600080fd5b506106ac612c39565b6040518082815260200191505060405180910390f35b3480156106ce57600080fd5b506106d7612c3f565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107256004803603602081101561070f57600080fd5b8101908080359060200190929190505050612c46565b005b34801561073357600080fd5b506107ab6004803603602081101561074a57600080fd5b810190808035906020019064010000000081111561076757600080fd5b82018360208201111561077957600080fd5b8035906020019184602083028401116401000000008311171561079b57600080fd5b9091929391929390505050612c52565b005b3480156107b957600080fd5b50610831600480360360208110156107d057600080fd5b81019080803590602001906401000000008111156107ed57600080fd5b8201836020820111156107ff57600080fd5b8035906020019184602083028401116401000000008311171561082157600080fd5b9091929391929390505050612d05565b005b34801561083f57600080fd5b506108966004803603606081101561085657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d53565b005b3480156108a457600080fd5b506108d1600480360360208110156108bb57600080fd5b8101908080359060200190929190505050612d58565b005b3480156108df57600080fd5b506108e8612d64565b6040518082815260200191505060405180910390f35b61097f6004803603604081101561091457600080fd5b810190808035906020019064010000000081111561093157600080fd5b82018360208201111561094357600080fd5b8035906020019184602083028401116401000000008311171561096557600080fd5b909192939192939080359060200190929190505050612d6a565b005b806002600581111561098f57fe5b61099882612513565b60058111156109a357fe5b148015610aad57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610a4357600080fd5b505afa158015610a57573d6000803e3d6000fd5b505050506040513d6020811015610a6d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ab857600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610c0757503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015610bb357600080fd5b505afa158015610bc7573d6000803e3d6000fd5b505050506040513d6020811015610bdd57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b1515610c1257600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7384612dc2565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610ce457600080fd5b505af1158015610cf8573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360019004908060020a82049150506249d40063ffffffff1602908060020a8204915050600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610dd357fe5b610ddc83612513565b6005811115610de757fe5b141515610df357600080fd5b6006610e4285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061319a565b11151515610e4f57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610ec682612dc2565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561118a57610f358160020154662386f26fc10000613258565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c8097260028360020154811515610f8d57fe5b0460006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610fed57600080fd5b505af1158015611001573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156114355750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156113f457600080fd5b505afa158015611408573d6000803e3d6000fd5b505050506040513d602081101561141e57600080fd5b810190808051906020019092919050505001014210155b151561144057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156114db57600080fd5b505af11580156114ef573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561156357600080fd5b505af1158015611577573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b60008060008060008060026000888152602001908152602001600020905061169387612513565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061170e84338585611251565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117c157600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600087815260200190815260200160002090506000611910868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156118d057600080fd5b505afa1580156118e4573d6000803e3d6000fd5b505050506040513d60208110156118fa57600080fd5b8101908080519060200190929190505050613274565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b5050505060006119b188612513565b9050600260058111156119c057fe5b8160058111156119cc57fe5b1415611aba578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3612045565b60046005811115611ac757fe5b816005811115611ad357fe5b141515611adf57600080fd5b662386f26fc10000821080611b9e57506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611b6157600080fd5b505afa158015611b75573d6000803e3d6000fd5b505050506040513d6020811015611b8b57600080fd5b8101908080519060200190929190505050115b15611c8c578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611c1457600080fd5b505af1158015611c28573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3612044565b8260030154821115611e5f57600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611da65760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3612043565b8260020154821115611f5d578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611ee557600080fd5b505af1158015611ef9573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3612042565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611fce57600080fd5b505af1158015611fe2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b806002600581111561205d57fe5b61206682612513565b600581111561207157fe5b14801561217b57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561211157600080fd5b505afa158015612125573d6000803e3d6000fd5b505050506040513d602081101561213b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561218657600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561221857600080fd5b505afa15801561222c573d6000803e3d6000fd5b505050506040513d602081101561224257600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561229057600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561245157600080fd5b505af1158015612465573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260008481526020019081526020016000209050612535834261280f565b1515612545576005915050612599565b806001015442101561257c576202a30063ffffffff16816001015403421015612572576001915050612599565b6004915050612599565b600081600301541415612593576000915050612599565b60029150505b919050565b81600260058111156125ac57fe5b6125b582612513565b60058111156125c057fe5b1480156126ca57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561266057600080fd5b505afa158015612674573d6000803e3d6000fd5b505050506040513d602081101561268a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156126d557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561271157600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156127e757600080fd5b505af11580156127fb573d6000803e3d6000fd5b505050506128098484613290565b50505050565b600061281a83610d3e565b8211905092915050565b806002600581111561283257fe5b61283b82612513565b600581111561284657fe5b14801561295057506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156128e657600080fd5b505afa1580156128fa573d6000803e3d6000fd5b505050506040513d602081101561291057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561295b57600080fd5b60006002600084815260200190815260200160002090506129878160020154662386f26fc10000613258565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018215151515815260200192505050600060405180830381600087803b158015612a3357600080fd5b505af1158015612a47573d6000803e3d6000fd5b50505050612b15838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612ad557600080fd5b505afa158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b8101908080519060200190929190505050613290565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612b9b57600080fd5b505afa158015612baf573d6000803e3d6000fd5b505050506040513d6020811015612bc557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b612c4f81613479565b50565b60008282905014151515612c6557600080fd5b60026005811115612c7257fe5b612c958383600186869050038181101515612c8957fe5b90506020020135612513565b6005811115612ca057fe5b14151515612cad57600080fd5b612d0160018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505060015461367e565b5050565b612d4f828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050613998565b5050565b505050565b612d61816139d8565b50565b60015481565b612db4838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050613998565b612dbd81613479565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015612e6957600080fd5b505afa158015612e7d573d6000803e3d6000fd5b505050506040513d6020811015612e9357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415613197576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612f8e57600080fd5b505af1158015612fa2573d6000803e3d6000fd5b5050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156130a057600080fd5b505af11580156130b4573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561317d57600080fd5b505af1158015613191573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b8183101561324d57600060ff845116905060808160ff1610156131d85760018401935061323f565b60e08160ff1610156131ef5760028401935061323e565b60f08160ff1610156132065760038401935061323d565b60f88160ff16101561321d5760048401935061323c565b60fc8160ff1610156132345760058401935061323b565b6006840193505b5b5b5b5b5080806001019150506131b0565b809350505050919050565b60008183111561326a5782905061326e565b8190505b92915050565b6000818310156132865782905061328a565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561333757600080fd5b505afa15801561334b573d6000803e3d6000fd5b505050506040513d602081101561336157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415613475576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561345c57600080fd5b505af1158015613470573d6000803e3d6000fd5b505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561352457600080fd5b662386f26fc10000341015151561353a57600080fd5b60003433613546613bd6565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f080158015613597573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811015156136ca57fe5b90602001906020020151306040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561376157600080fd5b505af1158015613775573d6000803e3d6000fd5b5050505080828481518110151561378857fe5b90602001906020020151604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905060008311156137d9576137d860018403838361367e565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561389e57600080fd5b505af11580156138b2573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561397b57600080fd5b505af115801561398f573d6000803e3d6000fd5b50505050505050565b60008090505b81518110156139d4576139c782828151811015156139b857fe5b906020019060200201516139d8565b808060010191505061399e565b5050565b60045442101580156139f25750630784ce00600454014211155b8015613af357503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015613aa057600080fd5b505afa158015613ab4573d6000803e3d6000fd5b505050506040513d6020811015613aca57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b1515613afe57600080fd5b6000613b0982612513565b905060016005811115613b1857fe5b816005811115613b2457fe5b1415613b305750613bd3565b60006005811115613b3d57fe5b816005811115613b4957fe5b141515613b5557600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b60405161099980613be78339019056fe60806040526040516020806109998339810180604052602081101561002357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff02191690831515021790555034600481905550506108ab806100ee6000396000f3fe608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305b344101461009e5780630b5ab3d5146100c957806313af4035146100e05780633fa4f24514610131578063674f220f1461015c5780638da5cb5b146101b3578063b0c809721461020a578063bbe4277114610251578063faab9d391461028c575b600080fd5b3480156100aa57600080fd5b506100b36102dd565b6040518082815260200191505060405180910390f35b3480156100d557600080fd5b506100de6102e2565b005b3480156100ec57600080fd5b5061012f6004803603602081101561010357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102ec565b005b34801561013d57600080fd5b5061014661048c565b6040518082815260200191505060405180910390f35b34801561016857600080fd5b50610171610496565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bf57600080fd5b506101c86104c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021657600080fd5b5061024f6004803603604081101561022d57600080fd5b81019080803590602001909291908035151590602001909291905050506104e9565b005b34801561025d57600080fd5b5061028a6004803603602081101561027457600080fd5b81019080803590602001909291905050506105ff565b005b34801561029857600080fd5b506102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610734565b005b600090565b6102ea6107d4565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561034857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561038457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561054557600080fd5b600560009054906101000a900460ff16151561056057600080fd5b816004541015151561057157600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc833073ffffffffffffffffffffffffffffffffffffffff1631039081150290604051600060405180830381858888f19350505050806105f0575080155b15156105fb57600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561065b57600080fd5b600560009054906101000a900460ff16151561067657600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e83073ffffffffffffffffffffffffffffffffffffffff1631846103e803028115156106d757fe5b049081150290604051600060405180830381858888f1935050505015156106fd57600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a16107316107d4565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079057600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161515156107f057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501561087d5761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea165627a7a723058204b07586b050f162bf145a4b7c1aafd28368df237685ac5efa796ffcdb45caa170029a165627a7a72305820f9d0dfc03d206320242f04cde93b393b4b61c79d90121be950ecac98e97709a10029",
  "sourceMap": "586:18530:7:-;;;1859:183;8:9:-1;5:2;;;30:1;27;20:12;5:2;1859:183:7;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1859:183:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:4;1934:3;;:10;;;;;;;;;;;;;;;;;;1965:9;1954:8;:20;;;;2015:1;2002:10;:14;:33;;2032:3;2002:33;;;2019:10;2002:33;1984:15;:51;;;;1859:183;;;586:18530;;;;;;",
  "deployedSourceMap": "586:18530:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8815:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8815:444:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8815:444:7;;;;;;;;;;;;;;;;;;;;14436:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14436:206:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14436:206:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9644:815;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9644:815:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9644:815:7;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9644:815:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9644:815:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9644:815:7;;;;;;;;;;;;;;;14931:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14931:178:7;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14931:178:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6717:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6717:844:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6717:844:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13505:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13505:227:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13505:227:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;628:14:7;;;;;;;;;;;;;;;;;;;;;;;;;;;4627:1975;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4627:1975:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4627:1975:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11552:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11552:565:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11552:565:7;;;;;;;;;;;;;;;;;;;;719:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;719:64:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;719:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12914:585;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12914:585:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12914:585:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8352:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8352:259:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8352:259:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14051:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14051:144:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14051:144:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7721:422:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7721:422:7;;;;;;;;;;;;;;;;;;;;1057:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1057:27:7;;;;;;;;;;;;;;;;;;;;;;;964:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;964:45:7;;;;;;;;;;;;;;;;;;;;;;;;;;;3807:87;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3807:87:7;;;;;;;;;;;;;;;;;;;;11088:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11088:231:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11088:231:7;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11088:231:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11088:231:7;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11088:231:7;;;;;;;;;;;;;;;2851:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2851:100:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2851:100:7;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2851:100:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2851:100:7;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2851:100:7;;;;;;;;;;;;;;;12513:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12513:172:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12513:172:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2174:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2174:83:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2174:83:7;;;;;;;;;;;;;;;;;;;;648:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;648:23:7;;;;;;;;;;;;;;;;;;;;;;;4236:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4236:159:7;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4236:159:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4236:159:7;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4236:159:7;;;;;;;;;;;;;;;;;;;;;;;;8815:444;8870:5;1390:10;1374:26;;;;;;;;:12;1380:5;1374;:12::i;:::-;:26;;;;;;;;;:72;;;;;1418:8;:15;1427:5;1418:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1418:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1418:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1418:28:7;;;;;;;;;;;;;;;;1404:42;;:10;:42;;;1374:72;1366:81;;;;;;;;8887:15;8905:8;:15;8914:5;8905:15;;;;;;;;;;;8887:33;;8930:17;8950:1;:6;;;;;;;;;;;;8930:26;;9003:8;8982:1;:18;;;:29;8975:3;:36;;:76;;;;9046:4;9015:36;;:3;;;;;;;;;;;:9;;;9025:8;;9015:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9015:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9015:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9015:19:7;;;;;;;;;;;;;;;;:36;;;;8975:76;8967:85;;;;;;;;9073:1;9063;:7;;:11;;;;9099:1;9084;:12;;:16;;;;9124:1;9110;:6;;;:16;;;;;;;;;;;;;;;;;;9137:26;9157:5;9137:19;:26::i;:::-;9173:12;:22;;;9196:4;9173:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9173:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9173:28:7;;;;9229:5;9216:28;9236:1;:7;;;9216:28;;;;;;;;;;;;;;;;;;1457:1;;8815:444;;:::o;14436:206::-;14496:4;14579:3;14570;14560:5;14555:11;;;:18;52:12:-1;49:1;45:20;29:14;25:41;7:59;;14555:18:7;1002:7;14539:35;;;14538:44;52:12:-1;49:1;45:20;29:14;25:41;7:59;;14538:44:7;14519:15;;:64;14512:71;;14436:206;;;:::o;9644:815::-;9752:12;;9741:24;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9741:24:7;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9741:24:7;;;9731:35;;;;;;9768:10;1291:6;1275:22;;;;;;;;:12;1281:5;1275;:12::i;:::-;:22;;;;;;;;;1267:31;;;;;;;;9826:1;9802:20;9809:12;;9802:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9802:20:7;;;;;;:6;:20::i;:::-;:25;;9794:34;;;;;;;;9838:12;9874;;9863:24;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9863:24:7;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9863:24:7;;;9853:35;;;;;;9838:50;;9899:15;9917:8;:14;9926:4;9917:14;;;;;;;;;;;9899:32;;9942:25;9962:4;9942:19;:25::i;:::-;10009:3;9982:31;;9990:1;:6;;;;;;;;;;;;9982:31;;;;9978:321;;;10140:22;10144:1;:7;;;1041:10;10140:3;:22::i;:::-;10130:1;:7;;:32;;;;10176:1;:6;;;;;;;;;;;;:17;;;10202:1;10194;:7;;;:9;;;;;;;;10205:5;10176:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10176:35:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10176:35:7;;;;10225:1;:6;;;;;;;;;;;;:15;;;10241:10;10225:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10225:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10225:27:7;;;;10266:1;:6;;;;;;;;;;;;:16;;;10283:4;10266:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10266:22:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10266:22:7;;;;9978:321;10336:12;;10314:64;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;10314:64:7;;;;;;;;;;;;;10330:4;10314:64;10350:1;:7;;;10359:1;:18;;;10314:64;;;;;;;;;;;;;;;;;;;;;;;;10399:1;10389;:7;;:11;;;;10425:1;10410;:12;;:16;;;;10450:1;10436;:6;;;:16;;;;;;;;;;;;;;;;;;1308:1;;9644:815;;;;:::o;14931:178::-;15023:7;15076:4;15082:5;15089;15096:4;15059:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15059:42:7;;;15049:53;;;;;;15042:60;;14931:178;;;;;;:::o;6717:844::-;6785:8;6796:10;:18;6807:6;6796:18;;;;;;;;;;;;;;;:24;6815:4;6796:24;;;;;;;;;;;;;;;;;;;;;6785:35;;7272:3;7248:28;;7256:3;7248:28;;;;:88;;;;;7329:7;907:6;7287:39;;:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7287:18:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7287:18:7;;;;;;;;;;;;;;;;:39;:49;7280:3;:56;;7248:88;7240:97;;;;;;;;7414:3;:12;;;7427:10;7414:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7414:24:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7414:24:7;;;;7448:3;:13;;;7462:1;7448:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7448:16:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7448:16:7;;;;7506:1;7474:10;:18;7485:6;7474:18;;;;;;;;;;;;;;;:24;7493:4;7474:24;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7541:6;7523:31;;7535:4;7523:31;7549:1;7552;7523:31;;;;;;;;;;;;;;;;;;;;;;;;;;6717:844;;;:::o;13505:227::-;13558:4;13564:7;13573:4;13579;13585;13601:15;13619:8;:15;13628:5;13619:15;;;;;;;;;;;13601:33;;13652:12;13658:5;13652;:12::i;:::-;13674:1;:6;;;;;;;;;;;;13683:1;:18;;;13703:1;:7;;;13712:1;:12;;;13644:81;;;;;;;;;;;13505:227;;;;;;;:::o;628:14::-;;;;;;;;;;;;;:::o;4627:1975::-;4708:12;4723:40;4730:5;4737:10;4749:6;4757:5;4723:6;:40::i;:::-;4708:55;;4773:8;4784:10;:22;4795:10;4784:22;;;;;;;;;;;;;;;:28;4807:4;4784:28;;;;;;;;;;;;;;;;;;;;;4773:39;;4854:3;4830:28;;4838:3;4830:28;;;;4822:37;;;;;;;;4914:3;4870:10;:22;4881:10;4870:22;;;;;;;;;;;;;;;:28;4893:4;4870:28;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;4929:15;4947:8;:15;4956:5;4947:15;;;;;;;;;;;4929:33;;4972:10;4985:24;4989:6;4997:3;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4997:11:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4997:11:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4997:11:7;;;;;;;;;;;;;;;;4985:3;:24::i;:::-;4972:37;;5019:3;:14;;;5034:5;5041:4;5019:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5019:27:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5019:27:7;;;;5057:17;5077:12;5083:5;5077;:12::i;:::-;5057:32;;5119:10;5103:26;;;;;;;;:12;:26;;;;;;;;;5099:1497;;;5210:3;:13;;;5224:1;5210:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5210:16:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5210:16:7;;;;5264:10;5245:40;;5257:5;5245:40;5276:5;5283:1;5245:40;;;;;;;;;;;;;;;;;;;;;;;;;;5099:1497;;;5322:11;5306:27;;;;;;;;:12;:27;;;;;;;;;;5302:1294;;;5378:8;;;5302:1294;1041:10;5407:5;:16;:74;;;;950:8;5448:33;;:1;:18;;;:33;5427:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5427:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5427:18:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5427:18:7;;;;;;;;;;;;;;;;:54;5407:74;5403:1193;;;5550:3;:13;;;5564:3;5550:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5550:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5550:18:7;;;;5606:10;5587:40;;5599:5;5587:40;5618:5;5625:1;5587:40;;;;;;;;;;;;;;;;;;;;;;;;;;5403:1193;;;5656:1;:12;;;5648:5;:20;5644:952;;;5791:3;5764:31;;5772:1;:6;;;;;;;;;;;;5764:31;;;;5760:145;;;5815:19;5837:1;:6;;;;;;;;;;;;5815:28;;5861:14;:24;;;5886:3;5861:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5861:29:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5861:29:7;;;;5760:145;;6052:1;:12;;;6042:1;:7;;:22;;;;6135:5;6120:1;:12;;:20;;;;6163:3;6154:1;:6;;;:12;;;;;;;;;;;;;;;;;;6204:10;6185:40;;6197:5;6185:40;6216:5;6223:1;6185:40;;;;;;;;;;;;;;;;;;;;;;;;;;5644:952;;;6254:1;:7;;;6246:5;:15;6242:354;;;6339:5;6329:1;:7;;:15;;;;6358:3;:13;;;6372:3;6358:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6358:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6358:18:7;;;;6414:10;6395:40;;6407:5;6395:40;6426:5;6433:1;6395:40;;;;;;;;;;;;;;;;;;;;;;;;;;6242:354;;;6508:3;:13;;;6522:3;6508:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6508:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6508:18:7;;;;6564:10;6545:40;;6557:5;6545:40;6576:5;6583:1;6545:40;;;;;;;;;;;;;;;;;;;;;;;;;;6242:354;5644:952;5403:1193;5099:1497;4627:1975;;;;;;;;:::o;11552:565::-;11614:5;1390:10;1374:26;;;;;;;;:12;1380:5;1374;:12::i;:::-;:26;;;;;;;;;:72;;;;;1418:8;:15;1427:5;1418:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1418:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1418:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1418:28:7;;;;;;;;;;;;;;;;1404:42;;:10;:42;;;1374:72;1366:81;;;;;;;;11631:17;11651:3;;;;;;;;;;;:9;;;11661:8;;11651:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11651:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11651:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11651:19:7;;;;;;;;;;;;;;;;11631:39;;11709:4;11688:26;;:9;:26;;;;11680:35;;;;;;;;11754:15;11772:8;:15;11781:5;11772:15;;;;;;;;;;;11754:33;;11797:1;:6;;;;;;;;;;;;:19;;;11817:9;11797:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11797:30:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11797:30:7;;;;11905:9;11895:44;;;11940:5;11947:1;:6;;;;;;;;;;;;11955:1;:18;;;11895:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11895:79:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11895:79:7;;;;12029:1;12015;:6;;;:16;;;;;;;;;;;;;;;;;;12062:1;12041;:18;;:22;;;;12083:1;12073;:7;;:11;;;;12109:1;12094;:12;;:16;;;;1457:1;;11552:565;;:::o;719:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12914:585::-;12965:4;12981:19;13003:8;:15;13012:5;13003:15;;;;;;;;;;;12981:37;;13034:21;13044:5;13051:3;13034:9;:21::i;:::-;13033:22;13029:464;;;13078:20;13071:27;;;;;13029:464;13125:5;:22;;;13119:3;:28;13115:378;;;950:8;13173:37;;:5;:22;;;:37;13167:3;:43;13163:158;;;13237:12;13230:19;;;;;13163:158;13295:11;13288:18;;;;;13115:378;13375:1;13355:5;:16;;;:21;13351:132;;;13403:9;13396:16;;;;;13351:132;13458:10;13451:17;;;12914:585;;;;:::o;8352:259::-;8430:5;1390:10;1374:26;;;;;;;;:12;1380:5;1374;:12::i;:::-;:26;;;;;;;;;:72;;;;;1418:8;:15;1427:5;1418:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1418:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1418:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1418:28:7;;;;;;;;;;;;;;;;1404:42;;:10;:42;;;1374:72;1366:81;;;;;;;;8475:3;8455:24;;:8;:24;;;;8447:33;;;;;;;;8491:15;8509:8;:15;8518:5;8509:15;;;;;;;;;;;8491:33;;8534:1;:6;;;;;;;;;;;;:15;;;8550:8;8534:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8534:25:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8534:25:7;;;;8569:35;8588:5;8595:8;8569:18;:35::i;:::-;1457:1;8352:259;;;:::o;14051:144::-;14123:12;14167:21;14182:5;14167:14;:21::i;:::-;14154:10;:34;14147:41;;14051:144;;;;:::o;7721:422::-;7780:5;1390:10;1374:26;;;;;;;;:12;1380:5;1374;:12::i;:::-;:26;;;;;;;;;:72;;;;;1418:8;:15;1427:5;1418:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1418:28:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1418:28:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1418:28:7;;;;;;;;;;;;;;;;1404:42;;:10;:42;;;1374:72;1366:81;;;;;;;;7797:15;7815:8;:15;7824:5;7815:15;;;;;;;;;;;7797:33;;7939:22;7943:1;:7;;;1041:10;7939:3;:22::i;:::-;7929:1;:7;;:32;;;;7971:1;:6;;;;;;;;;;;;:17;;;7989:1;:7;;;7998:4;7971:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7971:32:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7971:32:7;;;;8014:41;8033:5;8040:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8040:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8040:14:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8040:14:7;;;;;;;;;;;;;;;;8014:18;:41::i;:::-;8092:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8092:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8092:14:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8092:14:7;;;;;;;;;;;;;;;;8070:66;;8085:5;8070:66;8108:1;:7;;;8117:1;:18;;;8070:66;;;;;;;;;;;;;;;;;;;;;;;;1457:1;7721:422;;:::o;1057:27::-;;;;:::o;964:45::-;1002:7;964:45;:::o;3807:87::-;3869:18;3877:9;3869:7;:18::i;:::-;3807:87;:::o;11088:231::-;11178:1;11161:6;;:13;;:18;;11153:27;;;;;;;;11234:10;11198:46;;;;;;;;:32;11204:6;;11227:1;11211:6;;:13;;:17;11204:25;;;;;;;;;;;;;;;11198:5;:32::i;:::-;:46;;;;;;;;;;11190:55;;;;;;;;11256:56;11292:1;11276:6;;:13;;:17;11295:6;;11256:56;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11256:56:7;;;;;;11303:8;;11256:19;:56::i;:::-;11088:231;;:::o;2851:100::-;2921:23;2936:7;;2921:23;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2921:23:7;;;;;;:14;:23::i;:::-;2851:100;;:::o;12513:172::-;;;;:::o;2174:83::-;2230:20;2244:5;2230:13;:20::i;:::-;2174:83;:::o;648:23::-;;;;:::o;4236:159::-;4338:22;4353:6;;4338:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4338:22:7;;;;;;:14;:22::i;:::-;4370:18;4378:9;4370:7;:18::i;:::-;4236:159;;;:::o;15115:355::-;15213:4;15182:36;;:3;;;;;;;;;;;:9;;;15192:8;;15182:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15182:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15182:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15182:19:7;;;;;;;;;;;;;;;;:36;;;15178:286;;;15234:3;;;;;;;;;;;:19;;;15254:8;;15264:5;15279:4;15234:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15234:51:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15234:51:7;;;;15299:12;15341:8;;15351:5;15324:33;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15324:33:7;;;15314:44;;;;;;15299:59;;15372:3;;;;;;;;;;;:15;;;15388:4;15402:3;15372:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15372:35:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15372:35:7;;;;15421:3;;;;;;;;;;;:12;;;15434:4;15448:3;15421:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15421:32:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15421:32:7;;;;15178:286;;15115:355;:::o;18272:841::-;18328:4;18462:8;18480;18535:1;18532;18528:9;18521:16;;18571:3;18567:1;18561:8;18557:18;18550:25;;18594:8;18605:1;18594:12;;18616:471;18632:3;18626;:9;18616:471;;;18658:7;18711:4;18705:3;18699:10;18695:21;18690:26;;18739:4;18735:1;:8;;;18731:346;;;18770:1;18763:8;;;;18731:346;;;18800:4;18796:1;:8;;;18792:285;;;18831:1;18824:8;;;;18792:285;;;18861:4;18857:1;:8;;;18853:224;;;18892:1;18885:8;;;;18853:224;;;18922:4;18918:1;:8;;;18914:163;;;18953:1;18946:8;;;;18914:163;;;18983:4;18979:1;:8;;;18975:102;;;19014:1;19007:8;;;;18975:102;;;19061:1;19054:8;;;;18975:102;18914:163;18853:224;18792:285;18731:346;18616:471;18637:5;;;;;;;18616:471;;;19103:3;19096:10;;;;;18272:841;;;:::o;17604:141::-;17656:4;17680:1;17676;:5;17672:66;;;17702:1;17695:8;;;;17672:66;17737:1;17730:8;;17604:141;;;;;:::o;17955:::-;18007:4;18031:1;18027;:5;18023:66;;;18053:1;18046:8;;;;18023:66;18088:1;18081:8;;17955:141;;;;;:::o;17205:189::-;17321:4;17290:36;;:3;;;;;;;;;;;:9;;;17300:8;;17290:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17290:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17290:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17290:19:7;;;;;;;;;;;;;;;;:36;;;17286:101;;;17340:3;;;;;;;;;;;:19;;;17360:8;;17370:5;17377:9;17340:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17340:47:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17340:47:7;;;;17286:101;17205:189;;:::o;16084:402::-;16201:3;16147:58;;16155:10;:22;16166:10;16155:22;;;;;;;;;;;;;;;:33;16178:9;16155:33;;;;;;;;;;;;;;;;;;;;;16147:58;;;16139:67;;;;;;;;1041:10;16224:9;:21;;16216:30;;;;;;;;16311:8;16353:9;16364:10;16322:53;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16322:53:7;;;16311:64;;16421:3;16385:10;:22;16396:10;16385:22;;;;;;;;;;;;;;;:33;16408:9;16385:33;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16457:10;16439:40;;16446:9;16439:40;16469:9;16439:40;;;;;;;;;;;;;;;;;;16084:402;;:::o;16492:528::-;16627:3;;;;;;;;;;;:19;;;16647:4;16653:6;16660:3;16653:11;;;;;;;;;;;;;;;;;;16674:4;16627:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16627:53:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16627:53:7;;;;16724:4;16730:6;16737:3;16730:11;;;;;;;;;;;;;;;;;;16707:35;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16707:35:7;;;16697:46;;;;;;16690:53;;16808:1;16802:3;:7;16798:80;;;16825:42;16851:1;16845:3;:7;16854:6;16862:4;16825:19;:42::i;:::-;16798:80;16936:3;;;;;;;;;;;:15;;;16952:4;16966:3;16936:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16936:35:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16936:35:7;;;;16981:3;;;;;;;;;;;:12;;;16994:4;17008:3;16981:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16981:32:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16981:32:7;;;;16492:528;;;:::o;15910:168::-;15984:6;15993:1;15984:10;;15979:93;16000:7;:14;15996:1;:18;15979:93;;;16036:25;16050:7;16058:1;16050:10;;;;;;;;;;;;;;;;;;16036:13;:25::i;:::-;16016:4;;;;;;;15979:93;;;;15910:168;:::o;15476:428::-;1520:15;;1513:3;:22;;:69;;;;;1564:18;1546:15;;:36;1539:3;:43;;1513:69;:109;;;;;1617:4;1586:36;;:3;;;;;;;;;;;:9;;;1596:8;;1586:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1586:19:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1586:19:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1586:19:7;;;;;;;;;;;;;;;;:36;;;1513:109;1505:118;;;;;;;;15548:9;15560:12;15566:5;15560;:12::i;:::-;15548:24;;15594:12;15586:20;;;;;;;;:4;:20;;;;;;;;;15582:33;;;15608:7;;;15582:33;15640:9;15632:17;;;;;;;;:4;:17;;;;;;;;;15624:26;;;;;;;;15661:24;15688:8;:15;15697:5;15688:15;;;;;;;;;;;15661:42;;907:6;15743:24;;:3;:24;15713:10;:27;;:54;;;;15796:1;15777:10;:16;;:20;;;;15831:1;15807:10;:21;;:25;;;;15862:5;15847:50;15869:10;:27;;;15847:50;;;;;;;;;;;;;;;;;;1633:1;;;15476:428;:::o;586:18530::-;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\n\n/*\n\nTemporary Hash Registrar\n========================\n\nThis is a simplified version of a hash registrar. It is purporsefully limited:\nnames cannot be six letters or shorter, new auctions will stop after 4 years.\n\nThe plan is to test the basic features and then move to a new contract in at most\n2 years, when some sort of renewal mechanism will be enabled.\n*/\n\n\nimport \"./ENS.sol\";\nimport \"./DeedImplementation.sol\";\nimport \"./Registrar.sol\";\n\n/**\n * @title Registrar\n * @dev The registrar handles the auction process for each subnode of the node it owns.\n */\ncontract HashRegistrar is Registrar {\n    ENS public ens;\n    bytes32 public rootNode;\n\n    mapping (bytes32 => Entry) _entries;\n    mapping (address => mapping (bytes32 => Deed)) public sealedBids;\n    \n    enum Mode { Open, Auction, Owned, Forbidden, Reveal, NotYetAvailable }\n\n    uint32 constant totalAuctionLength = 5 days;\n    uint32 constant revealPeriod = 48 hours;\n    uint32 public constant launchLength = 8 weeks;\n\n    uint constant minPrice = 0.01 ether;\n    uint public registryStarted;\n\n    struct Entry {\n        Deed deed;\n        uint registrationDate;\n        uint value;\n        uint highestBid;\n    }\n\n    modifier inState(bytes32 _hash, Mode _state) {\n        require(state(_hash) == _state);\n        _;\n    }\n\n    modifier onlyOwner(bytes32 _hash) {\n        require(state(_hash) == Mode.Owned && msg.sender == _entries[_hash].deed.owner());\n        _;\n    }\n\n    modifier registryOpen() {\n        require(now >= registryStarted && now <= registryStarted + (365 * 4) * 1 days && ens.owner(rootNode) == address(this));\n        _;\n    }\n\n    /**\n     * @dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     *\n     * @param _ens The address of the ENS\n     * @param _rootNode The hash of the rootnode.\n     */\n    constructor(ENS _ens, bytes32 _rootNode, uint _startDate) public {\n        ens = _ens;\n        rootNode = _rootNode;\n        registryStarted = _startDate > 0 ? _startDate : now;\n    }\n\n    /**\n     * @dev Start an auction for an available hash\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function startAuction(bytes32 _hash) external {\n        _startAuction(_hash);\n    }\n\n    /**\n     * @dev Start multiple auctions for better anonymity\n     *\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\n     * Arrays are sent so that someone can open up an auction for X dummy hashes when they\n     * are only really interested in bidding for one. This will increase the cost for an\n     * attacker to simply bid blindly on all new auctions. Dummy auctions that are\n     * open but not bid on are closed after a week.\n     *\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on\n     */\n    function startAuctions(bytes32[] calldata _hashes) external {\n        _startAuctions(_hashes);\n    }\n\n    /**\n     * @dev Submit a new sealed bid on a desired hash in a blind auction\n     *\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\n     * contains information about the bid, including the bidded hash, the bid amount, and a random\n     * salt. Bids are not tied to any one auction until they are revealed. The value of the bid\n     * itself can be masqueraded by sending more than the value of your actual bid. This is\n     * followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\n     * Since this is an auction, it is expected that most public hashes, like known domains and common dictionary\n     * words, will have multiple bidders pushing the price up.\n     *\n     * @param sealedBid A sealedBid, created by the shaBid function\n     */\n    function newBid(bytes32 sealedBid) external payable {\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Start a set of auctions and bid on one of them\n     *\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\n     * but all in one transaction.\n     *\n     * @param hashes A list of hashes to start auctions on.\n     * @param sealedBid A sealed bid for one of the auctions.\n     */\n    function startAuctionsAndBid(bytes32[] calldata hashes, bytes32 sealedBid) external payable {\n        _startAuctions(hashes);\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Submit the properties of a bid to reveal them\n     *\n     * @param _hash The node in the sealedBid\n     * @param _value The bid amount in the sealedBid\n     * @param _salt The sale in the sealedBid\n     */\n    function unsealBid(bytes32 _hash, uint _value, bytes32 _salt) external {\n        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);\n        Deed bid = sealedBids[msg.sender][seal];\n        require(address(bid) != address(0x0));\n\n        sealedBids[msg.sender][seal] = Deed(address(0x0));\n        Entry storage h = _entries[_hash];\n        uint value = min(_value, bid.value());\n        bid.setBalance(value, true);\n\n        Mode auctionState = state(_hash);\n        if (auctionState == Mode.Owned) {\n            // Too late! Bidder loses their bid. Gets 0.5% back.\n            bid.closeDeed(5);\n            emit BidRevealed(_hash, msg.sender, value, 1);\n        } else if (auctionState != Mode.Reveal) {\n            // Invalid phase\n            revert();\n        } else if (value < minPrice || bid.creationDate() > h.registrationDate - revealPeriod) {\n            // Bid too low or too late, refund 99.5%\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 0);\n        } else if (value > h.highestBid) {\n            // New winner\n            // Cancel the other bid, refund 99.5%\n            if (address(h.deed) != address(0x0)) {\n                Deed previousWinner = h.deed;\n                previousWinner.closeDeed(995);\n            }\n\n            // Set new winner\n            // Per the rules of a vickery auction, the value becomes the previous highestBid\n            h.value = h.highestBid;  // will be zero if there's only 1 bidder\n            h.highestBid = value;\n            h.deed = bid;\n            emit BidRevealed(_hash, msg.sender, value, 2);\n        } else if (value > h.value) {\n            // Not winner, but affects second place\n            h.value = value;\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 3);\n        } else {\n            // Bid doesn't affect auction\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 4);\n        }\n    }\n\n    /**\n     * @dev Cancel a bid\n     *\n     * @param seal The value returned by the shaBid function\n     */\n    function cancelBid(address bidder, bytes32 seal) external {\n        Deed bid = sealedBids[bidder][seal];\n        \n        // If a sole bidder does not `unsealBid` in time, they have a few more days\n        // where they can call `startAuction` (again) and then `unsealBid` during\n        // the revealPeriod to get back their bid value.\n        // For simplicity, they should call `startAuction` within\n        // 9 days (2 weeks - totalAuctionLength), otherwise their bid will be\n        // cancellable by anyone.\n        require(address(bid) != address(0x0) && now >= bid.creationDate() + totalAuctionLength + 2 weeks);\n\n        // Send the canceller 0.5% of the bid, and burn the rest.\n        bid.setOwner(msg.sender);\n        bid.closeDeed(5);\n        sealedBids[bidder][seal] = Deed(0);\n        emit BidRevealed(seal, bidder, 0, 5);\n    }\n\n    /**\n     * @dev Finalize an auction after the registration date has passed\n     *\n     * @param _hash The hash of the name the auction is for\n     */\n    function finalizeAuction(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        \n        // Handles the case when there's only a single bidder (h.value is zero)\n        h.value = max(h.value, minPrice);\n        h.deed.setBalance(h.value, true);\n\n        trySetSubnodeOwner(_hash, h.deed.owner());\n        emit HashRegistered(_hash, h.deed.owner(), h.value, h.registrationDate);\n    }\n\n    /**\n     * @dev The owner of a domain may transfer it to someone else at any time.\n     *\n     * @param _hash The node to transfer\n     * @param newOwner The address to transfer ownership to\n     */\n    function transfer(bytes32 _hash, address payable newOwner) external onlyOwner(_hash) {\n        require(newOwner != address(0x0));\n\n        Entry storage h = _entries[_hash];\n        h.deed.setOwner(newOwner);\n        trySetSubnodeOwner(_hash, newOwner);\n    }\n\n    /**\n     * @dev After some time, or if we're no longer the registrar, the owner can release\n     *      the name and get their ether back.\n     *\n     * @param _hash The node to release\n     */\n    function releaseDeed(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        Deed deedContract = h.deed;\n\n        require(now >= h.registrationDate + 365 days || ens.owner(rootNode) != address(this));\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n\n        _tryEraseSingleNode(_hash);\n        deedContract.closeDeed(1000);\n        emit HashReleased(_hash, h.value);        \n    }\n\n    /**\n     * @dev Submit a name 6 characters long or less. If it has been registered,\n     *      the submitter will earn 50% of the deed value. \n     * \n     * We are purposefully handicapping the simplified registrar as a way \n     * to force it into being restructured in a few years.\n     *\n     * @param unhashedName An invalid name to search for in the registry.\n     */\n    function invalidateName(string calldata unhashedName)\n        external\n        inState(keccak256(abi.encode(unhashedName)), Mode.Owned)\n    {\n        require(strlen(unhashedName) <= 6);\n        bytes32 hash = keccak256(abi.encode(unhashedName));\n\n        Entry storage h = _entries[hash];\n\n        _tryEraseSingleNode(hash);\n\n        if (address(h.deed) != address(0x0)) {\n            // Reward the discoverer with 50% of the deed\n            // The previous owner gets 50%\n            h.value = max(h.value, minPrice);\n            h.deed.setBalance(h.value/2, false);\n            h.deed.setOwner(msg.sender);\n            h.deed.closeDeed(1000);\n        }\n\n        emit HashInvalidated(hash, unhashedName, h.value, h.registrationDate);\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n    }\n\n    /**\n     * @dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     *      name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     *      the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     *\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n     *        registrar's root. Must contain at least one element. For instance, to zero \n     *        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n     *        [keccak256('foo'), keccak256('bar')].\n     */\n    function eraseNode(bytes32[] calldata labels) external {\n        require(labels.length != 0);\n        require(state(labels[labels.length - 1]) != Mode.Owned);\n\n        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);\n    }\n\n    /**\n     * @dev Transfers the deed to the current registrar, if different from this one.\n     *\n     * Used during the upgrade process to a permanent registrar.\n     *\n     * @param _hash The name hash to transfer.\n     */\n    function transferRegistrars(bytes32 _hash) external onlyOwner(_hash) {\n        address registrar = ens.owner(rootNode);\n        require(registrar != address(this));\n\n        // Migrate the deed\n        Entry storage h = _entries[_hash];\n        h.deed.setRegistrar(registrar);\n\n        // Call the new registrar to accept the transfer\n        Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate);\n\n        // Zero out the Entry\n        h.deed = Deed(0);\n        h.registrationDate = 0;\n        h.value = 0;\n        h.highestBid = 0;\n    }\n\n    /**\n     * @dev Accepts a transfer from a previous registrar; stubbed out here since there\n     *      is no previous registrar implementing this interface.\n     *\n     * @param hash The sha3 hash of the label to transfer.\n     * @param deed The Deed object for the name being transferred in.\n     * @param registrationDate The date at which the name was originally registered.\n     */\n    function acceptRegistrarTransfer(bytes32 hash, Deed deed, uint registrationDate) external {\n        hash; deed; registrationDate; // Don't warn about unused variables\n    }\n\n    // State transitions for names:\n    //   Open -> Auction (startAuction)\n    //   Auction -> Reveal\n    //   Reveal -> Owned\n    //   Reveal -> Open (if nobody bid)\n    //   Owned -> Open (releaseDeed or invalidateName)\n    function state(bytes32 _hash) public view returns (Mode) {\n        Entry storage entry = _entries[_hash];\n\n        if (!isAllowed(_hash, now)) {\n            return Mode.NotYetAvailable;\n        } else if (now < entry.registrationDate) {\n            if (now < entry.registrationDate - revealPeriod) {\n                return Mode.Auction;\n            } else {\n                return Mode.Reveal;\n            }\n        } else {\n            if (entry.highestBid == 0) {\n                return Mode.Open;\n            } else {\n                return Mode.Owned;\n            }\n        }\n    }\n\n    function entries(bytes32 _hash) public view returns (Mode, address, uint, uint, uint) {\n        Entry storage h = _entries[_hash];\n        return (state(_hash), address(h.deed), h.registrationDate, h.value, h.highestBid);\n    }\n\n    /**\n     * @dev Determines if a name is available for registration yet\n     *\n     * Each name will be assigned a random date in which its auction\n     * can be started, from 0 to 8 weeks\n     *\n     * @param _hash The hash to start an auction on\n     * @param _timestamp The timestamp to query about\n     */\n    function isAllowed(bytes32 _hash, uint _timestamp) public view returns (bool allowed) {\n        return _timestamp > getAllowedTime(_hash);\n    }\n\n    /**\n     * @dev Returns available date for hash\n     *\n     * The available time from the `registryStarted` for a hash is proportional\n     * to its numeric value.\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function getAllowedTime(bytes32 _hash) public view returns (uint) {\n        return registryStarted + ((launchLength * (uint(_hash) >> 128)) >> 128);\n        // Right shift operator: a >> b == a / 2**b\n    }\n\n    /**\n     * @dev Hash the values required for a secret bid\n     *\n     * @param hash The node corresponding to the desired namehash\n     * @param value The bid amount\n     * @param salt A random value to ensure secrecy of the bid\n     * @return The hash of the bid values\n     */\n    function shaBid(bytes32 hash, address owner, uint value, bytes32 salt) public pure returns (bytes32) {\n        return keccak256(abi.encodePacked(hash, owner, value, salt));\n    }\n\n    function _tryEraseSingleNode(bytes32 label) internal {\n        if (ens.owner(rootNode) == address(this)) {\n            ens.setSubnodeOwner(rootNode, label, address(this));\n            bytes32 node = keccak256(abi.encodePacked(rootNode, label));\n            ens.setResolver(node, address(0x0));\n            ens.setOwner(node, address(0x0));\n        }\n    }\n\n    function _startAuction(bytes32 _hash) internal registryOpen() {\n        Mode mode = state(_hash);\n        if (mode == Mode.Auction) return;\n        require(mode == Mode.Open);\n\n        Entry storage newAuction = _entries[_hash];\n        newAuction.registrationDate = now + totalAuctionLength;\n        newAuction.value = 0;\n        newAuction.highestBid = 0;\n        emit AuctionStarted(_hash, newAuction.registrationDate);\n    }\n\n    function _startAuctions(bytes32[] memory _hashes) internal {\n        for (uint i = 0; i < _hashes.length; i ++) {\n            _startAuction(_hashes[i]);\n        }\n    }\n\n    function _newBid(bytes32 sealedBid) internal {\n        require(address(sealedBids[msg.sender][sealedBid]) == address(0x0));\n        require(msg.value >= minPrice);\n\n        // Creates a new hash contract with the owner\n        Deed bid = (new DeedImplementation).value(msg.value)(msg.sender);\n        sealedBids[msg.sender][sealedBid] = bid;\n        emit NewBid(sealedBid, msg.sender, msg.value);\n    }\n\n    function _eraseNodeHierarchy(uint idx, bytes32[] memory labels, bytes32 node) internal {\n        // Take ownership of the node\n        ens.setSubnodeOwner(node, labels[idx], address(this));\n        node = keccak256(abi.encodePacked(node, labels[idx]));\n\n        // Recurse if there are more labels\n        if (idx > 0) {\n            _eraseNodeHierarchy(idx - 1, labels, node);\n        }\n\n        // Erase the resolver and owner records\n        ens.setResolver(node, address(0x0));\n        ens.setOwner(node, address(0x0));\n    }\n\n    /**\n     * @dev Assign the owner in ENS, if we're still the registrar\n     *\n     * @param _hash hash to change owner\n     * @param _newOwner new owner to transfer to\n     */\n    function trySetSubnodeOwner(bytes32 _hash, address _newOwner) internal {\n        if (ens.owner(rootNode) == address(this))\n            ens.setSubnodeOwner(rootNode, _hash, _newOwner);\n    }\n\n    /**\n     * @dev Returns the maximum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The maximum of two unsigned integers\n     */\n    function max(uint a, uint b) internal pure returns (uint) {\n        if (a > b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the minimum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The minimum of two unsigned integers\n     */\n    function min(uint a, uint b) internal pure returns (uint) {\n        if (a < b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the length of a given string\n     *\n     * @param s The string to measure the length of\n     * @return The length of the input string\n     */\n    function strlen(string memory s) internal pure returns (uint) {\n        s; // Don't warn about unused variables\n        // Starting here means the LSB will be the byte we care about\n        uint ptr;\n        uint end;\n        assembly {\n            ptr := add(s, 1)\n            end := add(mload(s), ptr)\n        }\n        uint len = 0;\n        for (len; ptr < end; len++) {\n            uint8 b;\n            assembly { b := and(mload(ptr), 0xFF) }\n            if (b < 0x80) {\n                ptr += 1;\n            } else if (b < 0xE0) {\n                ptr += 2;\n            } else if (b < 0xF0) {\n                ptr += 3;\n            } else if (b < 0xF8) {\n                ptr += 4;\n            } else if (b < 0xFC) {\n                ptr += 5;\n            } else {\n                ptr += 6;\n            }\n        }\n        return len;\n    }\n\n}\n",
  "sourcePath": "/Users/deaneigenmann/Documents/ens/contracts/HashRegistrar.sol",
  "ast": {
    "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        2277
      ]
    },
    "id": 2278,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 797,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 798,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 532,
        "src": "388:19:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 799,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 369,
        "src": "408:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 800,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 2988,
        "src": "443:25:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 801,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2987,
              "src": "612:9:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$2987",
                "typeString": "contract Registrar"
              }
            },
            "id": 802,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:7"
          }
        ],
        "contractDependencies": [
          368,
          2987
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 2277,
        "linearizedBaseContracts": [
          2277,
          2987
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 804,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "628:14:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$531",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 803,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 531,
              "src": "628:3:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$531",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 806,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "648:23:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 805,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 810,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "678:35:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 809,
              "keyType": {
                "id": 807,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 808,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 846,
                "src": "698:5:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 816,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "719:64:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 815,
              "keyType": {
                "id": 811,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 814,
                "keyType": {
                  "id": 812,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 813,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 116,
                  "src": "759:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Mode",
            "id": 823,
            "members": [
              {
                "id": 817,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "806:4:7"
              },
              {
                "id": 818,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "812:7:7"
              },
              {
                "id": 819,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "821:5:7"
              },
              {
                "id": 820,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "828:9:7"
              },
              {
                "id": 821,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "839:6:7"
              },
              {
                "id": 822,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "847:15:7"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "794:70:7"
          },
          {
            "constant": true,
            "id": 826,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "870:43:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 824,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "870:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 825,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "907:6:7",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 829,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "919:39:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 827,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "919:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 828,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "950:8:7",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 832,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "964:45:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 830,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "964:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 831,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1002:7:7",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 835,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "1016:35:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 833,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1016:4:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 834,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1041:10:7",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 837,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "1057:27:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 836,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1057:4:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 846,
            "members": [
              {
                "constant": false,
                "id": 839,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1114:9:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$116",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 838,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 116,
                  "src": "1114:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 841,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1133:21:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 840,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1133:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 843,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1164:10:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 842,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1164:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 845,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1184:15:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 844,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1184:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 2277,
            "src": "1091:115:7",
            "visibility": "public"
          },
          {
            "body": {
              "id": 861,
              "nodeType": "Block",
              "src": "1257:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 854,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 848,
                              "src": "1281:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 853,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "1275:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                              "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1275:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 856,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 850,
                          "src": "1291:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "1275:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 852,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1267:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1267:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 859,
                  "nodeType": "ExpressionStatement",
                  "src": "1267:31:7"
                },
                {
                  "id": 860,
                  "nodeType": "PlaceholderStatement",
                  "src": "1308:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 862,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 848,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 862,
                  "src": "1229:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 847,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1229:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 850,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 862,
                  "src": "1244:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 849,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "1244:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1228:28:7"
            },
            "src": "1212:104:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 886,
              "nodeType": "Block",
              "src": "1356:109:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          },
                          "id": 872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 868,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 864,
                                "src": "1380:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 867,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1765,
                              "src": "1374:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                                "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                              }
                            },
                            "id": 869,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1374:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$823",
                              "typeString": "enum HashRegistrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 870,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 823,
                              "src": "1390:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                "typeString": "type(enum HashRegistrar.Mode)"
                              }
                            },
                            "id": 871,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1390:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$823",
                              "typeString": "enum HashRegistrar.Mode"
                            }
                          },
                          "src": "1374:26:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 881,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 873,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3335,
                              "src": "1404:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 874,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1404:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 875,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 810,
                                    "src": "1418:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 877,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 876,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 864,
                                    "src": "1427:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1418:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 878,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 839,
                                "src": "1418:20:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 879,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 100,
                              "src": "1418:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 880,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1418:28:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1404:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1374:72:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 866,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1366:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1366:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 884,
                  "nodeType": "ExpressionStatement",
                  "src": "1366:81:7"
                },
                {
                  "id": 885,
                  "nodeType": "PlaceholderStatement",
                  "src": "1457:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 887,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 864,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 887,
                  "src": "1341:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 863,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1341:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1340:15:7"
            },
            "src": "1322:143:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 916,
              "nodeType": "Block",
              "src": "1495:146:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 912,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 890,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "1513:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 891,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 837,
                              "src": "1520:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1513:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 902,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 893,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "1539:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 894,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 837,
                                "src": "1546:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 897,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 895,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1565:3:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 896,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1571:1:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1565:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 898,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1564:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1576:6:7",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1564:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1546:36:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1539:43:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1513:69:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 911,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 906,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 806,
                                "src": "1596:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 904,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 804,
                                "src": "1586:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$531",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 905,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 516,
                              "src": "1586:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1586:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 909,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3368,
                                "src": "1617:4:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 908,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1609:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 910,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1609:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1586:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1513:109:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 889,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1505:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1505:118:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 914,
                  "nodeType": "ExpressionStatement",
                  "src": "1505:118:7"
                },
                {
                  "id": 915,
                  "nodeType": "PlaceholderStatement",
                  "src": "1633:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 917,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 888,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1492:2:7"
            },
            "src": "1471:170:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 943,
              "nodeType": "Block",
              "src": "1924:118:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 928,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 926,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 804,
                      "src": "1934:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$531",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 927,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 919,
                      "src": "1940:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$531",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1934:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$531",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 929,
                  "nodeType": "ExpressionStatement",
                  "src": "1934:10:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 930,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 806,
                      "src": "1954:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 931,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 921,
                      "src": "1965:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1954:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 933,
                  "nodeType": "ExpressionStatement",
                  "src": "1954:20:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 934,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 837,
                      "src": "1984:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 937,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 935,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 923,
                          "src": "2002:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 936,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2015:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2002:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 939,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "2032:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 940,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "2002:33:7",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 938,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 923,
                        "src": "2019:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1984:51:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 942,
                  "nodeType": "ExpressionStatement",
                  "src": "1984:51:7"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 944,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 919,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1871:8:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$531",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 918,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 531,
                    "src": "1871:3:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$531",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 921,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1881:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1881:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 923,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1900:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 922,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1900:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1870:46:7"
            },
            "returnParameters": {
              "id": 925,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1924:0:7"
            },
            "scope": 2277,
            "src": "1859:183:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 953,
              "nodeType": "Block",
              "src": "2220:37:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 946,
                        "src": "2244:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 949,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1978,
                      "src": "2230:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2230:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 952,
                  "nodeType": "ExpressionStatement",
                  "src": "2230:20:7"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 954,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 946,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "2196:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 945,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2196:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2195:15:7"
            },
            "returnParameters": {
              "id": 948,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2220:0:7"
            },
            "scope": 2277,
            "src": "2174:83:7",
            "stateMutability": "nonpayable",
            "superFunction": 2909,
            "visibility": "external"
          },
          {
            "body": {
              "id": 964,
              "nodeType": "Block",
              "src": "2911:40:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 957,
                        "src": "2936:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 960,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2004,
                      "src": "2921:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2921:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 963,
                  "nodeType": "ExpressionStatement",
                  "src": "2921:23:7"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 965,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 957,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 965,
                  "src": "2874:26:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 955,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2874:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 956,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2874:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2873:28:7"
            },
            "returnParameters": {
              "id": 959,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2911:0:7"
            },
            "scope": 2277,
            "src": "2851:100:7",
            "stateMutability": "nonpayable",
            "superFunction": 2915,
            "visibility": "external"
          },
          {
            "body": {
              "id": 974,
              "nodeType": "Block",
              "src": "3859:35:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 971,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 967,
                        "src": "3877:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 970,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2062,
                      "src": "3869:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3869:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 973,
                  "nodeType": "ExpressionStatement",
                  "src": "3869:18:7"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 975,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 967,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 975,
                  "src": "3823:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 966,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3823:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3822:19:7"
            },
            "returnParameters": {
              "id": 969,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3859:0:7"
            },
            "scope": 2277,
            "src": "3807:87:7",
            "stateMutability": "payable",
            "superFunction": 2920,
            "visibility": "external"
          },
          {
            "body": {
              "id": 991,
              "nodeType": "Block",
              "src": "4328:67:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 984,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 978,
                        "src": "4353:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 983,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2004,
                      "src": "4338:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4338:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 986,
                  "nodeType": "ExpressionStatement",
                  "src": "4338:22:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 988,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 980,
                        "src": "4378:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 987,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2062,
                      "src": "4370:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4370:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 990,
                  "nodeType": "ExpressionStatement",
                  "src": "4370:18:7"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 992,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 981,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 978,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 992,
                  "src": "4265:25:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 976,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4265:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 977,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4265:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 980,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 992,
                  "src": "4292:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 979,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4292:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:46:7"
            },
            "returnParameters": {
              "id": 982,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4328:0:7"
            },
            "scope": 2277,
            "src": "4236:159:7",
            "stateMutability": "payable",
            "superFunction": 2928,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1223,
              "nodeType": "Block",
              "src": "4698:1904:7",
              "statements": [
                {
                  "assignments": [
                    1002
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1002,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4708:12:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1001,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4708:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1010,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1004,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 994,
                        "src": "4730:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1005,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "4737:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4737:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1007,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "4749:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1008,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 998,
                        "src": "4757:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1003,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1865,
                      "src": "4723:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 1009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4723:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4708:55:7"
                },
                {
                  "assignments": [
                    1012
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1012,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4773:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1011,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "4773:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1019,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1013,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 816,
                        "src": "4784:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1016,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1014,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "4795:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1015,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4795:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4784:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1018,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1017,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1002,
                      "src": "4807:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4784:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4773:39:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1022,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1012,
                              "src": "4838:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 1021,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4830:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1023,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4830:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1025,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4854:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1024,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4846:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4846:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4830:28:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1020,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "4822:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4822:37:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1029,
                  "nodeType": "ExpressionStatement",
                  "src": "4822:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1030,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "4870:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1034,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1031,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "4881:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 1032,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4881:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4870:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1035,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1033,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1002,
                        "src": "4893:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4870:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1038,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4914:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1037,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4906:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1039,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4906:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 1036,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "4901:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4901:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4870:49:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1042,
                  "nodeType": "ExpressionStatement",
                  "src": "4870:49:7"
                },
                {
                  "assignments": [
                    1044
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1044,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4929:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1043,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "4929:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1048,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1045,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "4947:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1047,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1046,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 994,
                      "src": "4956:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4947:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4929:33:7"
                },
                {
                  "assignments": [
                    1050
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1050,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4972:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1049,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4972:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1057,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1052,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "4989:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1053,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1012,
                            "src": "4997:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1054,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 110,
                          "src": "4997:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4997:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1051,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2189,
                      "src": "4985:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4985:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4972:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1061,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1050,
                        "src": "5034:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5041:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1058,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1012,
                        "src": "5019:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1060,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 87,
                      "src": "5019:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5019:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1064,
                  "nodeType": "ExpressionStatement",
                  "src": "5019:27:7"
                },
                {
                  "assignments": [
                    1066
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1066,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "5057:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1065,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 823,
                        "src": "5057:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1070,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1068,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 994,
                        "src": "5083:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1067,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1765,
                      "src": "5077:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                        "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5077:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5057:32:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    },
                    "id": 1074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1071,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1066,
                      "src": "5103:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1072,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "5119:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                          "typeString": "type(enum HashRegistrar.Mode)"
                        }
                      },
                      "id": 1073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5119:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "src": "5103:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "id": 1093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1090,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1066,
                        "src": "5306:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1091,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 823,
                          "src": "5322:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                            "typeString": "type(enum HashRegistrar.Mode)"
                          }
                        },
                        "id": 1092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5322:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "src": "5306:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1098,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1050,
                            "src": "5407:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1099,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 835,
                            "src": "5415:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5407:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1108,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1101,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1012,
                                "src": "5427:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 115,
                              "src": "5427:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5427:18:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1107,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1104,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1044,
                                "src": "5448:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1105,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 841,
                              "src": "5448:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1106,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 829,
                              "src": "5469:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5448:33:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5427:54:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5407:74:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1125,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1050,
                            "src": "5648:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1126,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1044,
                              "src": "5656:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1127,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 845,
                            "src": "5656:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5648:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1178,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1050,
                              "src": "6246:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1179,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1044,
                                "src": "6254:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1180,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 843,
                              "src": "6254:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6246:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1217,
                            "nodeType": "Block",
                            "src": "6452:144:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1206,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6522:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1203,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1012,
                                      "src": "6508:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1205,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 92,
                                    "src": "6508:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1207,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6508:18:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1208,
                                "nodeType": "ExpressionStatement",
                                "src": "6508:18:7"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1210,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 994,
                                      "src": "6557:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1211,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3335,
                                        "src": "6564:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1212,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6564:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1213,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1050,
                                      "src": "6576:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 1214,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6583:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 1209,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2878,
                                    "src": "6545:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1215,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6545:40:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1216,
                                "nodeType": "EmitStatement",
                                "src": "6540:45:7"
                              }
                            ]
                          },
                          "id": 1218,
                          "nodeType": "IfStatement",
                          "src": "6242:354:7",
                          "trueBody": {
                            "id": 1202,
                            "nodeType": "Block",
                            "src": "6263:183:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1186,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1182,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1044,
                                      "src": "6329:1:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 1184,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 843,
                                    "src": "6329:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 1185,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1050,
                                    "src": "6339:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6329:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1187,
                                "nodeType": "ExpressionStatement",
                                "src": "6329:15:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1191,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6372:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1188,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1012,
                                      "src": "6358:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1190,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 92,
                                    "src": "6358:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1192,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6358:18:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1193,
                                "nodeType": "ExpressionStatement",
                                "src": "6358:18:7"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1195,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 994,
                                      "src": "6407:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1196,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3335,
                                        "src": "6414:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1197,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6414:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1198,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1050,
                                      "src": "6426:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1199,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6433:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 1194,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2878,
                                    "src": "6395:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1200,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6395:40:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1201,
                                "nodeType": "EmitStatement",
                                "src": "6390:45:7"
                              }
                            ]
                          }
                        },
                        "id": 1219,
                        "nodeType": "IfStatement",
                        "src": "5644:952:7",
                        "trueBody": {
                          "id": 1177,
                          "nodeType": "Block",
                          "src": "5670:566:7",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 1136,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1130,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1044,
                                        "src": "5772:1:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1131,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 839,
                                      "src": "5772:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 1129,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5764:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1132,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5764:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 1134,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5791:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 1133,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5783:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1135,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5783:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5764:31:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 1149,
                              "nodeType": "IfStatement",
                              "src": "5760:145:7",
                              "trueBody": {
                                "id": 1148,
                                "nodeType": "Block",
                                "src": "5797:108:7",
                                "statements": [
                                  {
                                    "assignments": [
                                      1138
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 1138,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 1148,
                                        "src": "5815:19:7",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$116",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 1137,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 116,
                                          "src": "5815:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$116",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 1141,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1139,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1044,
                                        "src": "5837:1:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1140,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 839,
                                      "src": "5837:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5815:28:7"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 1145,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5886:3:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1142,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1138,
                                          "src": "5861:14:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$116",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 1144,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 92,
                                        "src": "5861:24:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 1146,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5861:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1147,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5861:29:7"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1155,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1150,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6042:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1152,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 843,
                                  "src": "6042:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1153,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6052:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1154,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 845,
                                  "src": "6052:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6042:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1156,
                              "nodeType": "ExpressionStatement",
                              "src": "6042:22:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1161,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1157,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6120:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1159,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 845,
                                  "src": "6120:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1160,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1050,
                                  "src": "6135:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6120:20:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1162,
                              "nodeType": "ExpressionStatement",
                              "src": "6120:20:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1167,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1163,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6154:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1165,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 839,
                                  "src": "6154:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1166,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1012,
                                  "src": "6163:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6154:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1168,
                              "nodeType": "ExpressionStatement",
                              "src": "6154:12:7"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1170,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 994,
                                    "src": "6197:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1171,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3335,
                                      "src": "6204:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 1172,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6204:10:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 1173,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1050,
                                    "src": "6216:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1174,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6223:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 1169,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2878,
                                  "src": "6185:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 1175,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6185:40:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1176,
                              "nodeType": "EmitStatement",
                              "src": "6180:45:7"
                            }
                          ]
                        }
                      },
                      "id": 1220,
                      "nodeType": "IfStatement",
                      "src": "5403:1193:7",
                      "trueBody": {
                        "id": 1124,
                        "nodeType": "Block",
                        "src": "5483:155:7",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 1113,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5564:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1110,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1012,
                                  "src": "5550:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 1112,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 92,
                                "src": "5550:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 1114,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5550:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1115,
                            "nodeType": "ExpressionStatement",
                            "src": "5550:18:7"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1117,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 994,
                                  "src": "5599:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1118,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3335,
                                    "src": "5606:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 1119,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5606:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1120,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1050,
                                  "src": "5618:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 1121,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5625:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1116,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2878,
                                "src": "5587:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 1122,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5587:40:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1123,
                            "nodeType": "EmitStatement",
                            "src": "5582:45:7"
                          }
                        ]
                      }
                    },
                    "id": 1221,
                    "nodeType": "IfStatement",
                    "src": "5302:1294:7",
                    "trueBody": {
                      "id": 1097,
                      "nodeType": "Block",
                      "src": "5335:62:7",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1094,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                3340,
                                3341
                              ],
                              "referencedDeclaration": 3340,
                              "src": "5378:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 1095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5378:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 1096,
                          "nodeType": "ExpressionStatement",
                          "src": "5378:8:7"
                        }
                      ]
                    }
                  },
                  "id": 1222,
                  "nodeType": "IfStatement",
                  "src": "5099:1497:7",
                  "trueBody": {
                    "id": 1089,
                    "nodeType": "Block",
                    "src": "5131:165:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 1078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5224:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1075,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1012,
                              "src": "5210:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 92,
                            "src": "5210:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5210:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1080,
                        "nodeType": "ExpressionStatement",
                        "src": "5210:16:7"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 994,
                              "src": "5257:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1083,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3335,
                                "src": "5264:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1084,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5264:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1085,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1050,
                              "src": "5276:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1086,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5283:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1081,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2878,
                            "src": "5245:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 1087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5245:40:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1088,
                        "nodeType": "EmitStatement",
                        "src": "5240:45:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 1224,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 994,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4646:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4646:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 996,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4661:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 995,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 998,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4674:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4674:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4645:43:7"
            },
            "returnParameters": {
              "id": 1000,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4698:0:7"
            },
            "scope": 2277,
            "src": "4627:1975:7",
            "stateMutability": "nonpayable",
            "superFunction": 2937,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1289,
              "nodeType": "Block",
              "src": "6775:786:7",
              "statements": [
                {
                  "assignments": [
                    1232
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1232,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1289,
                      "src": "6785:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1231,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "6785:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1238,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1233,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 816,
                        "src": "6796:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1235,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1234,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "6807:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6796:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1237,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1236,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1228,
                      "src": "6815:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6796:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6785:35:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1241,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1232,
                                "src": "7256:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 1240,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7248:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1242,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7248:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 1244,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7272:3:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 1243,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7264:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1245,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7264:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7248:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1255,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1247,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3337,
                            "src": "7280:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1254,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1252,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1248,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1232,
                                    "src": "7287:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$116",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1249,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 115,
                                  "src": "7287:16:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 1250,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7287:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1251,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 826,
                                "src": "7308:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7287:39:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 1253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7329:7:7",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7287:49:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7280:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7248:88:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1239,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "7240:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7240:97:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1258,
                  "nodeType": "ExpressionStatement",
                  "src": "7240:97:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1262,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "7427:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7427:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1259,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1232,
                        "src": "7414:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1261,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 75,
                      "src": "7414:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7414:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1265,
                  "nodeType": "ExpressionStatement",
                  "src": "7414:24:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7462:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1266,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1232,
                        "src": "7448:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 92,
                      "src": "7448:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7448:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1271,
                  "nodeType": "ExpressionStatement",
                  "src": "7448:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1272,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "7474:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1275,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1273,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1226,
                          "src": "7485:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7474:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1276,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1274,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1228,
                        "src": "7493:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7474:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7506:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1277,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "7501:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7501:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7474:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1281,
                  "nodeType": "ExpressionStatement",
                  "src": "7474:34:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1283,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1228,
                        "src": "7535:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1284,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "7541:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7549:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7552:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 1282,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2878,
                      "src": "7523:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 1287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7523:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1288,
                  "nodeType": "EmitStatement",
                  "src": "7518:36:7"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 1290,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1226,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1290,
                  "src": "6736:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6736:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1228,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 1290,
                  "src": "6752:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6752:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6735:30:7"
            },
            "returnParameters": {
              "id": 1230,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6775:0:7"
            },
            "scope": 2277,
            "src": "6717:844:7",
            "stateMutability": "nonpayable",
            "superFunction": 2944,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1344,
              "nodeType": "Block",
              "src": "7787:356:7",
              "statements": [
                {
                  "assignments": [
                    1299
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1299,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1344,
                      "src": "7797:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1298,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "7797:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1303,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1300,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "7815:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1302,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1301,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1292,
                      "src": "7824:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7815:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7797:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1304,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1299,
                        "src": "7929:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1306,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "7929:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1308,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1299,
                            "src": "7943:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1309,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 843,
                          "src": "7943:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1310,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 835,
                          "src": "7952:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1307,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2171,
                        "src": "7939:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1311,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7939:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7929:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1313,
                  "nodeType": "ExpressionStatement",
                  "src": "7929:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1319,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "7989:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1320,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "7989:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7998:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1314,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "7971:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1317,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "7971:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 87,
                      "src": "7971:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7971:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1323,
                  "nodeType": "ExpressionStatement",
                  "src": "7971:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1325,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1292,
                        "src": "8033:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1326,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1299,
                              "src": "8040:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1327,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "8040:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 100,
                          "src": "8040:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1329,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8040:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1324,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2153,
                      "src": "8014:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8014:41:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1331,
                  "nodeType": "ExpressionStatement",
                  "src": "8014:41:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1333,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1292,
                        "src": "8085:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1334,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1299,
                              "src": "8092:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1335,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "8092:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 100,
                          "src": "8092:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8092:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1338,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "8108:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1339,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "8108:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1340,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "8117:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1341,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "8117:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1332,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2888,
                      "src": "8070:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 1342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8070:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1343,
                  "nodeType": "EmitStatement",
                  "src": "8065:71:7"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 1345,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1295,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1292,
                    "src": "7780:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1296,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1294,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "7770:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7770:16:7"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1292,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1345,
                  "src": "7746:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1291,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7746:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7745:15:7"
            },
            "returnParameters": {
              "id": 1297,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7787:0:7"
            },
            "scope": 2277,
            "src": "7721:422:7",
            "stateMutability": "nonpayable",
            "superFunction": 2949,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1382,
              "nodeType": "Block",
              "src": "8437:174:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 1360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1356,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1349,
                          "src": "8455:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1358,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8475:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8467:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8467:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8455:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1355,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "8447:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8447:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1362,
                  "nodeType": "ExpressionStatement",
                  "src": "8447:33:7"
                },
                {
                  "assignments": [
                    1364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1364,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1382,
                      "src": "8491:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1363,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "8491:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1368,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1365,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "8509:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1367,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1366,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1347,
                      "src": "8518:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8509:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8491:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1374,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1349,
                        "src": "8550:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1369,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "8534:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1372,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "8534:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 75,
                      "src": "8534:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1375,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8534:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1376,
                  "nodeType": "ExpressionStatement",
                  "src": "8534:25:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1378,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1347,
                        "src": "8588:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1379,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1349,
                        "src": "8595:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 1377,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2153,
                      "src": "8569:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8569:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1381,
                  "nodeType": "ExpressionStatement",
                  "src": "8569:35:7"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 1383,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1352,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1347,
                    "src": "8430:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1353,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1351,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "8420:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8420:16:7"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1347,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1383,
                  "src": "8370:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1346,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8370:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1349,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1383,
                  "src": "8385:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 1348,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8385:15:7",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8369:41:7"
            },
            "returnParameters": {
              "id": 1354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8437:0:7"
            },
            "scope": 2277,
            "src": "8352:259:7",
            "stateMutability": "nonpayable",
            "superFunction": 2956,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1456,
              "nodeType": "Block",
              "src": "8877:382:7",
              "statements": [
                {
                  "assignments": [
                    1392
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1392,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1456,
                      "src": "8887:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1391,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "8887:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1396,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1393,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "8905:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1395,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1394,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1385,
                      "src": "8914:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8905:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8887:33:7"
                },
                {
                  "assignments": [
                    1398
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1398,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1456,
                      "src": "8930:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1397,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "8930:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1401,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1399,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1392,
                      "src": "8950:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 1400,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 839,
                    "src": "8950:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8930:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1403,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3337,
                            "src": "8975:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1404,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1392,
                                "src": "8982:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1405,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 841,
                              "src": "8982:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 1406,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9003:8:7",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8982:29:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8975:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1411,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 806,
                                "src": "9025:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1409,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 804,
                                "src": "9015:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$531",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1410,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 516,
                              "src": "9015:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9015:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1414,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3368,
                                "src": "9046:4:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1413,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9038:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9038:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "9015:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8975:76:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "8967:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8967:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1419,
                  "nodeType": "ExpressionStatement",
                  "src": "8967:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1420,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9063:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1422,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "9063:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1423,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9073:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9063:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1425,
                  "nodeType": "ExpressionStatement",
                  "src": "9063:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1426,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9084:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "9084:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9099:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9084:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1431,
                  "nodeType": "ExpressionStatement",
                  "src": "9084:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1432,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9110:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1434,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "9110:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9124:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1435,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "9119:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1437,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9119:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9110:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1439,
                  "nodeType": "ExpressionStatement",
                  "src": "9110:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1441,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1385,
                        "src": "9157:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1440,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "9137:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9137:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1443,
                  "nodeType": "ExpressionStatement",
                  "src": "9137:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 1447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9196:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1444,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1398,
                        "src": "9173:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 92,
                      "src": "9173:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9173:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1449,
                  "nodeType": "ExpressionStatement",
                  "src": "9173:28:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1451,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1385,
                        "src": "9229:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1452,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1392,
                          "src": "9236:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1453,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "9236:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1450,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2894,
                      "src": "9216:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9216:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1455,
                  "nodeType": "EmitStatement",
                  "src": "9211:33:7"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 1457,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1388,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1385,
                    "src": "8870:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1389,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1387,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "8860:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8860:16:7"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1385,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1457,
                  "src": "8836:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1384,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8836:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8835:15:7"
            },
            "returnParameters": {
              "id": 1390,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8877:0:7"
            },
            "scope": 2277,
            "src": "8815:444:7",
            "stateMutability": "nonpayable",
            "superFunction": 2961,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1577,
              "nodeType": "Block",
              "src": "9784:675:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1477,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1474,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1459,
                              "src": "9809:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 1473,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2276,
                            "src": "9802:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 1475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9802:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 1476,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9826:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9802:25:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1472,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "9794:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9794:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1479,
                  "nodeType": "ExpressionStatement",
                  "src": "9794:34:7"
                },
                {
                  "assignments": [
                    1481
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1481,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1577,
                      "src": "9838:12:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1480,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9838:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1485,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1459,
                            "src": "9874:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1483,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "9863:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1484,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9863:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1486,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9863:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1482,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "9853:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9853:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9838:50:7"
                },
                {
                  "assignments": [
                    1490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1490,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1577,
                      "src": "9899:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1489,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "9899:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1494,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1491,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "9917:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1493,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1492,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1481,
                      "src": "9926:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9917:14:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9899:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1496,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "9962:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1495,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "9942:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9942:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1498,
                  "nodeType": "ExpressionStatement",
                  "src": "9942:25:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1500,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1490,
                            "src": "9990:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1501,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 839,
                          "src": "9990:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$116",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$116",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 1499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9982:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1502,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9982:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 1504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10009:3:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1503,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10001:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10001:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9982:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1547,
                  "nodeType": "IfStatement",
                  "src": "9978:321:7",
                  "trueBody": {
                    "id": 1546,
                    "nodeType": "Block",
                    "src": "10015:284:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1515,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1507,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1490,
                              "src": "10130:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1509,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 843,
                            "src": "10130:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1511,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1490,
                                  "src": "10144:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1512,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 843,
                                "src": "10144:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1513,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 835,
                                "src": "10153:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 1510,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2171,
                              "src": "10140:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 1514,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10140:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10130:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1516,
                        "nodeType": "ExpressionStatement",
                        "src": "10130:32:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1525,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1522,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1490,
                                  "src": "10194:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1523,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 843,
                                "src": "10194:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1524,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10202:1:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10194:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 1526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10205:5:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1517,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10176:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1520,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10176:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 87,
                            "src": "10176:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 1527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10176:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1528,
                        "nodeType": "ExpressionStatement",
                        "src": "10176:35:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1534,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3335,
                                "src": "10241:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10241:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1529,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10225:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1532,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10225:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 75,
                            "src": "10225:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 1536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10225:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1537,
                        "nodeType": "ExpressionStatement",
                        "src": "10225:27:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 1543,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10283:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1538,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10266:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1541,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10266:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 92,
                            "src": "10266:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10266:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1545,
                        "nodeType": "ExpressionStatement",
                        "src": "10266:22:7"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1549,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "10330:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1550,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1459,
                        "src": "10336:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1551,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1490,
                          "src": "10350:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1552,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "10350:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1553,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1490,
                          "src": "10359:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1554,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "10359:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1548,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2904,
                      "src": "10314:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 1555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10314:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1556,
                  "nodeType": "EmitStatement",
                  "src": "10309:69:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1557,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10389:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1559,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "10389:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10399:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10389:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1562,
                  "nodeType": "ExpressionStatement",
                  "src": "10389:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1563,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10410:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1565,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "10410:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10425:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10410:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1568,
                  "nodeType": "ExpressionStatement",
                  "src": "10410:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1569,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10436:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1571,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "10436:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10450:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1572,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "10445:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10445:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10436:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1576,
                  "nodeType": "ExpressionStatement",
                  "src": "10436:16:7"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 1578,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1465,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1459,
                            "src": "9752:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1463,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "9741:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1464,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9741:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9741:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1462,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "9731:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9731:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1468,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "9768:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                        "typeString": "type(enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9768:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  }
                ],
                "id": 1470,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1461,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 862,
                  "src": "9723:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$823_$",
                    "typeString": "modifier (bytes32,enum HashRegistrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9723:56:7"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1459,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 1578,
                  "src": "9668:28:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9668:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9667:30:7"
            },
            "returnParameters": {
              "id": 1471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9784:0:7"
            },
            "scope": 2277,
            "src": "9644:815:7",
            "stateMutability": "nonpayable",
            "superFunction": 2966,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1614,
              "nodeType": "Block",
              "src": "11143:176:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1585,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "11161:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11161:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1587,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11178:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11161:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1584,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11153:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11153:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1590,
                  "nodeType": "ExpressionStatement",
                  "src": "11153:27:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 1602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1593,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1581,
                                "src": "11204:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 1598,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1597,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1594,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1581,
                                    "src": "11211:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 1595,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11211:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11227:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11211:17:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11204:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1592,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "11198:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                              "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1599,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11198:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1600,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "11234:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11234:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "11198:46:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1591,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11190:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11190:55:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1604,
                  "nodeType": "ExpressionStatement",
                  "src": "11190:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1606,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "11276:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11276:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11292:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11276:17:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1610,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "11295:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1611,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 806,
                        "src": "11303:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1605,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2128,
                      "src": "11256:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 1612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11256:56:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1613,
                  "nodeType": "ExpressionStatement",
                  "src": "11256:56:7"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 1615,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1581,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 1615,
                  "src": "11107:25:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1579,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11107:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1580,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11107:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11106:27:7"
            },
            "returnParameters": {
              "id": 1583,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11143:0:7"
            },
            "scope": 2277,
            "src": "11088:231:7",
            "stateMutability": "nonpayable",
            "superFunction": 2972,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1689,
              "nodeType": "Block",
              "src": "11621:496:7",
              "statements": [
                {
                  "assignments": [
                    1624
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1624,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 1689,
                      "src": "11631:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1623,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11631:7:7",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1629,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1627,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 806,
                        "src": "11661:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1625,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "11651:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 1626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 516,
                      "src": "11651:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 1628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11651:19:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11631:39:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1631,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1624,
                          "src": "11688:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1633,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3368,
                              "src": "11709:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 1632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11701:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11701:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11688:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1630,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11680:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11680:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1637,
                  "nodeType": "ExpressionStatement",
                  "src": "11680:35:7"
                },
                {
                  "assignments": [
                    1639
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1639,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1689,
                      "src": "11754:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1638,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "11754:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1643,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1640,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "11772:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1642,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1641,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "11781:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11772:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11754:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1649,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1624,
                        "src": "11817:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1644,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11797:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1647,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "11797:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1648,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 80,
                      "src": "11797:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1650,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11797:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1651,
                  "nodeType": "ExpressionStatement",
                  "src": "11797:30:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1656,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "11940:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1657,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11947:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1658,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "11947:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1659,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11955:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1660,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "11955:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1653,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1624,
                            "src": "11905:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1652,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2987,
                          "src": "11895:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$2987_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 1654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11895:20:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$2987",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 1655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2986,
                      "src": "11895:44:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$116_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 1661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11895:79:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1662,
                  "nodeType": "ExpressionStatement",
                  "src": "11895:79:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1669,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1663,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12015:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1665,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "12015:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12029:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1666,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "12024:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1668,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12024:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12015:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1670,
                  "nodeType": "ExpressionStatement",
                  "src": "12015:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1671,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12041:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1673,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 841,
                      "src": "12041:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12062:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12041:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1676,
                  "nodeType": "ExpressionStatement",
                  "src": "12041:22:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1681,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1677,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12073:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1679,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "12073:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1680,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12083:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12073:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1682,
                  "nodeType": "ExpressionStatement",
                  "src": "12073:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1683,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12094:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1685,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "12094:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12109:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12094:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1688,
                  "nodeType": "ExpressionStatement",
                  "src": "12094:16:7"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 1690,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1620,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1617,
                    "src": "11614:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1621,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1619,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "11604:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11604:16:7"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1617,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1690,
                  "src": "11580:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1616,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11580:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11579:15:7"
            },
            "returnParameters": {
              "id": 1622,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11621:0:7"
            },
            "scope": 2277,
            "src": "11552:565:7",
            "stateMutability": "nonpayable",
            "superFunction": 2977,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1705,
              "nodeType": "Block",
              "src": "12603:82:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1699,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1692,
                    "src": "12613:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1700,
                  "nodeType": "ExpressionStatement",
                  "src": "12613:4:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1701,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1694,
                    "src": "12619:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1702,
                  "nodeType": "ExpressionStatement",
                  "src": "12619:4:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1703,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1696,
                    "src": "12625:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1704,
                  "nodeType": "ExpressionStatement",
                  "src": "12625:16:7"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 1706,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12546:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12546:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1694,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12560:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1693,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 116,
                    "src": "12560:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1696,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12571:21:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1695,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12571:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12545:48:7"
            },
            "returnParameters": {
              "id": 1698,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12603:0:7"
            },
            "scope": 2277,
            "src": "12513:172:7",
            "stateMutability": "nonpayable",
            "superFunction": 2986,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1764,
              "nodeType": "Block",
              "src": "12971:528:7",
              "statements": [
                {
                  "assignments": [
                    1714
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1714,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1764,
                      "src": "12981:19:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1713,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "12981:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1718,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1715,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "13003:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1717,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1716,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1708,
                      "src": "13012:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13003:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12981:37:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13033:22:7",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1720,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1708,
                          "src": "13044:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1721,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3337,
                          "src": "13051:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1719,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1818,
                        "src": "13034:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1722,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13034:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1728,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "13119:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1729,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1714,
                          "src": "13125:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1730,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "13125:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13119:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1761,
                      "nodeType": "Block",
                      "src": "13337:156:7",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1748,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1714,
                                "src": "13355:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1749,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 845,
                              "src": "13355:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13375:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13355:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1759,
                            "nodeType": "Block",
                            "src": "13433:50:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1756,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13458:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1757,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13458:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1758,
                                "nodeType": "Return",
                                "src": "13451:17:7"
                              }
                            ]
                          },
                          "id": 1760,
                          "nodeType": "IfStatement",
                          "src": "13351:132:7",
                          "trueBody": {
                            "id": 1755,
                            "nodeType": "Block",
                            "src": "13378:49:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1752,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13403:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1753,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13403:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1754,
                                "nodeType": "Return",
                                "src": "13396:16:7"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1762,
                    "nodeType": "IfStatement",
                    "src": "13115:378:7",
                    "trueBody": {
                      "id": 1747,
                      "nodeType": "Block",
                      "src": "13149:182:7",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1737,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1732,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "13167:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1736,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1733,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1714,
                                  "src": "13173:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1734,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 841,
                                "src": "13173:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1735,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 829,
                                "src": "13198:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13173:37:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13167:43:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1745,
                            "nodeType": "Block",
                            "src": "13270:51:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1742,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13295:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1743,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13295:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1744,
                                "nodeType": "Return",
                                "src": "13288:18:7"
                              }
                            ]
                          },
                          "id": 1746,
                          "nodeType": "IfStatement",
                          "src": "13163:158:7",
                          "trueBody": {
                            "id": 1741,
                            "nodeType": "Block",
                            "src": "13212:52:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1738,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13237:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1739,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13237:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1740,
                                "nodeType": "Return",
                                "src": "13230:19:7"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1763,
                  "nodeType": "IfStatement",
                  "src": "13029:464:7",
                  "trueBody": {
                    "id": 1727,
                    "nodeType": "Block",
                    "src": "13057:52:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1724,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "13078:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13078:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1712,
                        "id": 1726,
                        "nodeType": "Return",
                        "src": "13071:27:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1765,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1708,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1765,
                  "src": "12929:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1707,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12929:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12928:15:7"
            },
            "returnParameters": {
              "id": 1712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1711,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1765,
                  "src": "12965:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1710,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "12965:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12964:6:7"
            },
            "scope": 2277,
            "src": "12914:585:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1801,
              "nodeType": "Block",
              "src": "13591:141:7",
              "statements": [
                {
                  "assignments": [
                    1781
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1781,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1801,
                      "src": "13601:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1780,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "13601:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1785,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1782,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "13619:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1784,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1783,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1767,
                      "src": "13628:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13619:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13601:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1787,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1767,
                            "src": "13658:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1786,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1765,
                          "src": "13652:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                            "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                          }
                        },
                        "id": 1788,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13652:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1790,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1781,
                              "src": "13674:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1791,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "13674:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 1789,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13666:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13666:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1793,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13683:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1794,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "13683:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1795,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13703:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "13703:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1797,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13712:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1798,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 845,
                        "src": "13712:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1799,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "13651:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$823_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum HashRegistrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1779,
                  "id": 1800,
                  "nodeType": "Return",
                  "src": "13644:81:7"
                }
              ]
            },
            "documentation": null,
            "id": 1802,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1768,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1767,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13522:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1766,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13522:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13521:15:7"
            },
            "returnParameters": {
              "id": 1779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1770,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13558:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1769,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "13558:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1772,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13564:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1771,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13564:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1774,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13573:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1773,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13573:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1776,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13579:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1775,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13579:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1778,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13585:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1777,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13585:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13557:33:7"
            },
            "scope": 2277,
            "src": "13505:227:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1817,
              "nodeType": "Block",
              "src": "14137:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1811,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1806,
                      "src": "14154:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1813,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1804,
                          "src": "14182:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1812,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1841,
                        "src": "14167:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 1814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14167:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14154:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1810,
                  "id": 1816,
                  "nodeType": "Return",
                  "src": "14147:41:7"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 1818,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1804,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14070:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14070:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1806,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14085:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1805,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14085:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14069:32:7"
            },
            "returnParameters": {
              "id": 1810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1809,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14123:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1808,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14123:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14122:14:7"
            },
            "scope": 2277,
            "src": "14051:144:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1840,
              "nodeType": "Block",
              "src": "14502:140:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1825,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 837,
                      "src": "14519:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1826,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 832,
                                  "src": "14539:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1831,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 1828,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1820,
                                            "src": "14560:5:7",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 1827,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14555:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 1829,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14555:11:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 1830,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14570:3:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14555:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1832,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14554:20:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14539:35:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1834,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14538:37:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 1835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14579:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14538:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1837,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14537:46:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14519:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1824,
                  "id": 1839,
                  "nodeType": "Return",
                  "src": "14512:71:7"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 1841,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1820,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1841,
                  "src": "14460:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14460:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14459:15:7"
            },
            "returnParameters": {
              "id": 1824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1823,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1841,
                  "src": "14496:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1822,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14496:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14495:6:7"
            },
            "scope": 2277,
            "src": "14436:206:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1864,
              "nodeType": "Block",
              "src": "15032:77:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1857,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1843,
                            "src": "15076:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1858,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1845,
                            "src": "15082:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1859,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1847,
                            "src": "15089:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1860,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1849,
                            "src": "15096:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1855,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "15059:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15059:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15059:42:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1854,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "15049:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15049:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1853,
                  "id": 1863,
                  "nodeType": "Return",
                  "src": "15042:60:7"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 1865,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1843,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14947:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1842,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14947:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1845,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14961:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1844,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14961:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1847,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14976:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1846,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14976:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1849,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14988:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14988:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14946:55:7"
            },
            "returnParameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1852,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "15023:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15023:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15022:9:7"
            },
            "scope": 2277,
            "src": "14931:178:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1918,
              "nodeType": "Block",
              "src": "15168:302:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1872,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "15192:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1870,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "15182:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 1871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 516,
                        "src": "15182:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 1873,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15182:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1875,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3368,
                          "src": "15213:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 1874,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15205:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1876,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15205:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15182:36:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1917,
                  "nodeType": "IfStatement",
                  "src": "15178:286:7",
                  "trueBody": {
                    "id": 1916,
                    "nodeType": "Block",
                    "src": "15220:244:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1881,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 806,
                              "src": "15254:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1882,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1867,
                              "src": "15264:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1884,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3368,
                                  "src": "15279:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 1883,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15271:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1885,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15271:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1878,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15234:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1880,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 488,
                            "src": "15234:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 1886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15234:51:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1887,
                        "nodeType": "ExpressionStatement",
                        "src": "15234:51:7"
                      },
                      {
                        "assignments": [
                          1889
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1889,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 1916,
                            "src": "15299:12:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1888,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15299:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1897,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1893,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 806,
                                  "src": "15341:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1894,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1867,
                                  "src": "15351:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1891,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3322,
                                  "src": "15324:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1892,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15324:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15324:33:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1890,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3329,
                            "src": "15314:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15314:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15299:59:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1901,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1889,
                              "src": "15388:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 1903,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15402:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1902,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15394:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1904,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15394:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1898,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15372:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1900,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 495,
                            "src": "15372:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 1905,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15372:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1906,
                        "nodeType": "ExpressionStatement",
                        "src": "15372:35:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1910,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1889,
                              "src": "15434:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 1912,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15448:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1911,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15440:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1913,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15440:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1907,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15421:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1909,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 502,
                            "src": "15421:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 1914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15421:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1915,
                        "nodeType": "ExpressionStatement",
                        "src": "15421:32:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1919,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1867,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 1919,
                  "src": "15144:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15144:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15143:15:7"
            },
            "returnParameters": {
              "id": 1869,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15168:0:7"
            },
            "scope": 2277,
            "src": "15115:355:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1977,
              "nodeType": "Block",
              "src": "15538:366:7",
              "statements": [
                {
                  "assignments": [
                    1927
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1927,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 1977,
                      "src": "15548:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1926,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 823,
                        "src": "15548:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1931,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1929,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1921,
                        "src": "15566:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1928,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1765,
                      "src": "15560:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                        "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15560:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15548:24:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    },
                    "id": 1935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1932,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1927,
                      "src": "15586:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1933,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "15594:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                          "typeString": "type(enum HashRegistrar.Mode)"
                        }
                      },
                      "id": 1934,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15594:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "src": "15586:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1937,
                  "nodeType": "IfStatement",
                  "src": "15582:33:7",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 1925,
                    "id": 1936,
                    "nodeType": "Return",
                    "src": "15608:7:7"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 1942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1939,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1927,
                          "src": "15632:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1940,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "15640:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15640:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "15632:17:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "15624:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15624:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1944,
                  "nodeType": "ExpressionStatement",
                  "src": "15624:26:7"
                },
                {
                  "assignments": [
                    1946
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1946,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 1977,
                      "src": "15661:24:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1945,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "15661:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1950,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1947,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "15688:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1949,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1948,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1921,
                      "src": "15697:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15688:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15661:42:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1951,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15713:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 841,
                      "src": "15713:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1954,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "15743:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1955,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 826,
                        "src": "15749:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15743:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15713:54:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1958,
                  "nodeType": "ExpressionStatement",
                  "src": "15713:54:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1959,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15777:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1961,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "15777:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15796:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15777:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1964,
                  "nodeType": "ExpressionStatement",
                  "src": "15777:20:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1965,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15807:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1967,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "15807:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15831:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15807:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1970,
                  "nodeType": "ExpressionStatement",
                  "src": "15807:25:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1921,
                        "src": "15862:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1946,
                          "src": "15869:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "15869:27:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1971,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2860,
                      "src": "15847:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15847:50:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1976,
                  "nodeType": "EmitStatement",
                  "src": "15842:55:7"
                }
              ]
            },
            "documentation": null,
            "id": 1978,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 1924,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1923,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 917,
                  "src": "15523:12:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15523:14:7"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1921,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1978,
                  "src": "15499:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15499:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15498:15:7"
            },
            "returnParameters": {
              "id": 1925,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15538:0:7"
            },
            "scope": 2277,
            "src": "15476:428:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2003,
              "nodeType": "Block",
              "src": "15969:109:7",
              "statements": [
                {
                  "body": {
                    "id": 2001,
                    "nodeType": "Block",
                    "src": "16022:50:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1996,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1981,
                                "src": "16050:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 1998,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1997,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1985,
                                "src": "16058:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16050:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1995,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1978,
                            "src": "16036:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 1999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16036:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2000,
                        "nodeType": "ExpressionStatement",
                        "src": "16036:25:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1988,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1985,
                      "src": "15996:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1989,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1981,
                        "src": "16000:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 1990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "16000:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15996:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2002,
                  "initializationExpression": {
                    "assignments": [
                      1985
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1985,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2002,
                        "src": "15984:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1984,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15984:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1987,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15993:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15984:10:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1993,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "16016:4:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1992,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1985,
                        "src": "16016:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1994,
                    "nodeType": "ExpressionStatement",
                    "src": "16016:4:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "15979:93:7"
                }
              ]
            },
            "documentation": null,
            "id": 2004,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1981,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2004,
                  "src": "15934:24:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1979,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15934:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1980,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15934:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15933:26:7"
            },
            "returnParameters": {
              "id": 1983,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15969:0:7"
            },
            "scope": 2277,
            "src": "15910:168:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2061,
              "nodeType": "Block",
              "src": "16129:357:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2021,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2011,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 816,
                                  "src": "16155:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 2014,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2012,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3335,
                                    "src": "16166:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2013,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16166:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16155:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 2016,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2015,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2006,
                                "src": "16178:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16155:33:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 2010,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16147:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2017,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16147:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2019,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16201:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2018,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16193:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2020,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16193:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16147:58:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2009,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "16139:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16139:67:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2023,
                  "nodeType": "ExpressionStatement",
                  "src": "16139:67:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2025,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16224:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16224:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2027,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 835,
                          "src": "16237:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16224:21:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2024,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "16216:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16216:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2030,
                  "nodeType": "ExpressionStatement",
                  "src": "16216:30:7"
                },
                {
                  "assignments": [
                    2032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2032,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2061,
                      "src": "16311:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2031,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "16311:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2043,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16364:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16364:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2037,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16353:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16353:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2034,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16323:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2033,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 368,
                                "src": "16327:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$368",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 2035,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16322:24:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 2036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16322:30:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$value_$",
                          "typeString": "function (uint256) returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 2039,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16322:41:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 2042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16322:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$368",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16311:64:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2044,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "16385:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2048,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2045,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16396:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16396:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16385:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2049,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2047,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2006,
                        "src": "16408:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16385:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2050,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2032,
                      "src": "16421:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16385:39:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2052,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:39:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2054,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2006,
                        "src": "16446:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2055,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16457:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2056,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16457:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2057,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16469:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16469:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2053,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2868,
                      "src": "16439:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16439:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2060,
                  "nodeType": "EmitStatement",
                  "src": "16434:45:7"
                }
              ]
            },
            "documentation": null,
            "id": 2062,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2006,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2062,
                  "src": "16101:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2005,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16101:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16100:19:7"
            },
            "returnParameters": {
              "id": 2008,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16129:0:7"
            },
            "scope": 2277,
            "src": "16084:402:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2127,
              "nodeType": "Block",
              "src": "16579:441:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2075,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16647:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2076,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2067,
                          "src": "16653:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2078,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2077,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2064,
                          "src": "16660:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16653:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2080,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3368,
                            "src": "16674:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 2079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16666:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16666:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2072,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16627:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 488,
                      "src": "16627:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16627:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2083,
                  "nodeType": "ExpressionStatement",
                  "src": "16627:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2069,
                      "src": "16690:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2088,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2069,
                              "src": "16724:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2089,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2067,
                                "src": "16730:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2091,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2090,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2064,
                                "src": "16737:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16730:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2086,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3322,
                              "src": "16707:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 2087,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16707:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 2092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16707:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 2085,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3329,
                        "src": "16697:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16697:46:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16690:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "16690:53:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2098,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2096,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2064,
                      "src": "16802:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16808:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16802:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2108,
                  "nodeType": "IfStatement",
                  "src": "16798:80:7",
                  "trueBody": {
                    "id": 2107,
                    "nodeType": "Block",
                    "src": "16811:67:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2100,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2064,
                                "src": "16845:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2101,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16851:1:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16845:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2103,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2067,
                              "src": "16854:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2104,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2069,
                              "src": "16862:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2099,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2128,
                            "src": "16825:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16825:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2106,
                        "nodeType": "ExpressionStatement",
                        "src": "16825:42:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2112,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16952:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2114,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16966:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16958:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16958:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16936:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 495,
                      "src": "16936:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16936:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2117,
                  "nodeType": "ExpressionStatement",
                  "src": "16936:35:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2121,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16994:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17008:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "17000:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17000:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2118,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16981:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 502,
                      "src": "16981:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16981:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2126,
                  "nodeType": "ExpressionStatement",
                  "src": "16981:32:7"
                }
              ]
            },
            "documentation": null,
            "id": 2128,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2070,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2064,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16521:8:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2063,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16521:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2067,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16531:23:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2065,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16531:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2066,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16531:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2069,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16556:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2068,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16556:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16520:49:7"
            },
            "returnParameters": {
              "id": 2071,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16579:0:7"
            },
            "scope": 2277,
            "src": "16492:528:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2152,
              "nodeType": "Block",
              "src": "17276:118:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2137,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "17300:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2135,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "17290:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 516,
                        "src": "17290:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17290:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2140,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3368,
                          "src": "17321:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17313:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2141,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17313:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17290:36:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2151,
                  "nodeType": "IfStatement",
                  "src": "17286:101:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2146,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "17360:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2147,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2130,
                          "src": "17370:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2148,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2132,
                          "src": "17377:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2143,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "17340:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 488,
                        "src": "17340:19:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17340:47:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2150,
                    "nodeType": "ExpressionStatement",
                    "src": "17340:47:7"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2153,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2130,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2153,
                  "src": "17233:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2129,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17233:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2132,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2153,
                  "src": "17248:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2131,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17248:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17232:34:7"
            },
            "returnParameters": {
              "id": 2134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17276:0:7"
            },
            "scope": 2277,
            "src": "17205:189:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2170,
              "nodeType": "Block",
              "src": "17662:83:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2162,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "17676:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2163,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2157,
                      "src": "17680:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17676:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2167,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2157,
                      "src": "17737:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2161,
                    "id": 2168,
                    "nodeType": "Return",
                    "src": "17730:8:7"
                  },
                  "id": 2169,
                  "nodeType": "IfStatement",
                  "src": "17672:66:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2165,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "17702:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2161,
                    "id": 2166,
                    "nodeType": "Return",
                    "src": "17695:8:7"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 2171,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2155,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17617:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17617:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17625:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17625:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17616:16:7"
            },
            "returnParameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17656:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17656:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17655:6:7"
            },
            "scope": 2277,
            "src": "17604:141:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2188,
              "nodeType": "Block",
              "src": "18013:83:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2180,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2173,
                      "src": "18027:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "18031:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18027:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2185,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "18088:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2179,
                    "id": 2186,
                    "nodeType": "Return",
                    "src": "18081:8:7"
                  },
                  "id": 2187,
                  "nodeType": "IfStatement",
                  "src": "18023:66:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2183,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2173,
                      "src": "18053:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2179,
                    "id": 2184,
                    "nodeType": "Return",
                    "src": "18046:8:7"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 2189,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2173,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "17968:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2172,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17968:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2175,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "17976:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2174,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17976:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17967:16:7"
            },
            "returnParameters": {
              "id": 2179,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2178,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "18007:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18007:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18006:6:7"
            },
            "scope": 2277,
            "src": "17955:141:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2275,
              "nodeType": "Block",
              "src": "18334:779:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2196,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2191,
                    "src": "18344:1:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 2197,
                  "nodeType": "ExpressionStatement",
                  "src": "18344:1:7"
                },
                {
                  "assignments": [
                    2199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2199,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18462:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2198,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18462:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2200,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18462:8:7"
                },
                {
                  "assignments": [
                    2202
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2202,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18480:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2201,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18480:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2203,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18480:8:7"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 2199,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18521:3:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 2202,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18550:3:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2191,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18532:1:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2191,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18567:1:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 2199,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18571:3:7",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2204,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18498:100:7"
                },
                {
                  "assignments": [
                    2206
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2206,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18594:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2205,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18594:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2208,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18605:1:7",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18594:12:7"
                },
                {
                  "body": {
                    "id": 2271,
                    "nodeType": "Block",
                    "src": "18644:443:7",
                    "statements": [
                      {
                        "assignments": [
                          2218
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2218,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 2271,
                            "src": "18658:7:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 2217,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18658:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2219,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18658:7:7"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 2199,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18705:3:7",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 2218,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18690:1:7",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 2220,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "18679:54:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 2223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2221,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2218,
                            "src": "18735:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 2222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18739:4:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18735:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 2231,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2229,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2218,
                              "src": "18796:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 2230,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18800:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18796:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 2239,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2237,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2218,
                                "src": "18857:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 2238,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18861:4:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18857:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 2247,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2245,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2218,
                                  "src": "18918:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 2246,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18922:4:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18918:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 2255,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2253,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2218,
                                    "src": "18979:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 2254,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18983:4:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18979:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 2265,
                                  "nodeType": "Block",
                                  "src": "19036:41:7",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2263,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2261,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2199,
                                          "src": "19054:3:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 2262,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "19061:1:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "19054:8:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2264,
                                      "nodeType": "ExpressionStatement",
                                      "src": "19054:8:7"
                                    }
                                  ]
                                },
                                "id": 2266,
                                "nodeType": "IfStatement",
                                "src": "18975:102:7",
                                "trueBody": {
                                  "id": 2260,
                                  "nodeType": "Block",
                                  "src": "18989:41:7",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2258,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2256,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2199,
                                          "src": "19007:3:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 2257,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "19014:1:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "19007:8:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2259,
                                      "nodeType": "ExpressionStatement",
                                      "src": "19007:8:7"
                                    }
                                  ]
                                }
                              },
                              "id": 2267,
                              "nodeType": "IfStatement",
                              "src": "18914:163:7",
                              "trueBody": {
                                "id": 2252,
                                "nodeType": "Block",
                                "src": "18928:41:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2250,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 2248,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2199,
                                        "src": "18946:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 2249,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18953:1:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18946:8:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 2251,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18946:8:7"
                                  }
                                ]
                              }
                            },
                            "id": 2268,
                            "nodeType": "IfStatement",
                            "src": "18853:224:7",
                            "trueBody": {
                              "id": 2244,
                              "nodeType": "Block",
                              "src": "18867:41:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2242,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 2240,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2199,
                                      "src": "18885:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2241,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18892:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18885:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2243,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18885:8:7"
                                }
                              ]
                            }
                          },
                          "id": 2269,
                          "nodeType": "IfStatement",
                          "src": "18792:285:7",
                          "trueBody": {
                            "id": 2236,
                            "nodeType": "Block",
                            "src": "18806:41:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2234,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 2232,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2199,
                                    "src": "18824:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2233,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18831:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18824:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2235,
                                "nodeType": "ExpressionStatement",
                                "src": "18824:8:7"
                              }
                            ]
                          }
                        },
                        "id": 2270,
                        "nodeType": "IfStatement",
                        "src": "18731:346:7",
                        "trueBody": {
                          "id": 2228,
                          "nodeType": "Block",
                          "src": "18745:41:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2226,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 2224,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2199,
                                  "src": "18763:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 2225,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18770:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18763:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2227,
                              "nodeType": "ExpressionStatement",
                              "src": "18763:8:7"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2211,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2199,
                      "src": "18626:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2212,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2202,
                      "src": "18632:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18626:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2272,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2209,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2206,
                      "src": "18621:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2210,
                    "nodeType": "ExpressionStatement",
                    "src": "18621:3:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2215,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18637:5:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2214,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2206,
                        "src": "18637:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2216,
                    "nodeType": "ExpressionStatement",
                    "src": "18637:5:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "18616:471:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2273,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2206,
                    "src": "19103:3:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2195,
                  "id": 2274,
                  "nodeType": "Return",
                  "src": "19096:10:7"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 2276,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2191,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2276,
                  "src": "18288:15:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2190,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18288:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18287:17:7"
            },
            "returnParameters": {
              "id": 2195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2194,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2276,
                  "src": "18328:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18328:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18327:6:7"
            },
            "scope": 2277,
            "src": "18272:841:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 2278,
        "src": "586:18530:7"
      }
    ],
    "src": "0:19117:7"
  },
  "legacyAST": {
    "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        2277
      ]
    },
    "id": 2278,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 797,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 798,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 532,
        "src": "388:19:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 799,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 369,
        "src": "408:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/deaneigenmann/Documents/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 800,
        "nodeType": "ImportDirective",
        "scope": 2278,
        "sourceUnit": 2988,
        "src": "443:25:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 801,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2987,
              "src": "612:9:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$2987",
                "typeString": "contract Registrar"
              }
            },
            "id": 802,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:7"
          }
        ],
        "contractDependencies": [
          368,
          2987
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 2277,
        "linearizedBaseContracts": [
          2277,
          2987
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 804,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "628:14:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$531",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 803,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 531,
              "src": "628:3:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$531",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 806,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "648:23:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 805,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 810,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "678:35:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 809,
              "keyType": {
                "id": 807,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 808,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 846,
                "src": "698:5:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 816,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "719:64:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 815,
              "keyType": {
                "id": 811,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 814,
                "keyType": {
                  "id": 812,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 813,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 116,
                  "src": "759:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Mode",
            "id": 823,
            "members": [
              {
                "id": 817,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "806:4:7"
              },
              {
                "id": 818,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "812:7:7"
              },
              {
                "id": 819,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "821:5:7"
              },
              {
                "id": 820,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "828:9:7"
              },
              {
                "id": 821,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "839:6:7"
              },
              {
                "id": 822,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "847:15:7"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "794:70:7"
          },
          {
            "constant": true,
            "id": 826,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "870:43:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 824,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "870:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 825,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "907:6:7",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 829,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "919:39:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 827,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "919:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 828,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "950:8:7",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 832,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "964:45:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 830,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "964:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 831,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1002:7:7",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 835,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "1016:35:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 833,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1016:4:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 834,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1041:10:7",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 837,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 2277,
            "src": "1057:27:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 836,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1057:4:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 846,
            "members": [
              {
                "constant": false,
                "id": 839,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1114:9:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$116",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 838,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 116,
                  "src": "1114:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 841,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1133:21:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 840,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1133:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 843,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1164:10:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 842,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1164:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 845,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 846,
                "src": "1184:15:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 844,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1184:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 2277,
            "src": "1091:115:7",
            "visibility": "public"
          },
          {
            "body": {
              "id": 861,
              "nodeType": "Block",
              "src": "1257:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 854,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 848,
                              "src": "1281:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 853,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "1275:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                              "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1275:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 856,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 850,
                          "src": "1291:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "1275:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 852,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1267:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1267:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 859,
                  "nodeType": "ExpressionStatement",
                  "src": "1267:31:7"
                },
                {
                  "id": 860,
                  "nodeType": "PlaceholderStatement",
                  "src": "1308:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 862,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 848,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 862,
                  "src": "1229:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 847,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1229:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 850,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 862,
                  "src": "1244:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 849,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "1244:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1228:28:7"
            },
            "src": "1212:104:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 886,
              "nodeType": "Block",
              "src": "1356:109:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          },
                          "id": 872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 868,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 864,
                                "src": "1380:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 867,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1765,
                              "src": "1374:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                                "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                              }
                            },
                            "id": 869,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1374:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$823",
                              "typeString": "enum HashRegistrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 870,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 823,
                              "src": "1390:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                "typeString": "type(enum HashRegistrar.Mode)"
                              }
                            },
                            "id": 871,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1390:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$823",
                              "typeString": "enum HashRegistrar.Mode"
                            }
                          },
                          "src": "1374:26:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 881,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 873,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3335,
                              "src": "1404:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 874,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1404:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 875,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 810,
                                    "src": "1418:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 877,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 876,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 864,
                                    "src": "1427:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1418:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 878,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 839,
                                "src": "1418:20:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 879,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 100,
                              "src": "1418:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 880,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1418:28:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1404:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1374:72:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 866,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1366:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1366:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 884,
                  "nodeType": "ExpressionStatement",
                  "src": "1366:81:7"
                },
                {
                  "id": 885,
                  "nodeType": "PlaceholderStatement",
                  "src": "1457:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 887,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 864,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 887,
                  "src": "1341:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 863,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1341:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1340:15:7"
            },
            "src": "1322:143:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 916,
              "nodeType": "Block",
              "src": "1495:146:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 912,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 890,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "1513:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 891,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 837,
                              "src": "1520:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1513:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 902,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 893,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "1539:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 894,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 837,
                                "src": "1546:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 897,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 895,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1565:3:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 896,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1571:1:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1565:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 898,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1564:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1576:6:7",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1564:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1546:36:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1539:43:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1513:69:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 911,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 906,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 806,
                                "src": "1596:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 904,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 804,
                                "src": "1586:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$531",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 905,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 516,
                              "src": "1586:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1586:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 909,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3368,
                                "src": "1617:4:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 908,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1609:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 910,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1609:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1586:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1513:109:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 889,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "1505:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1505:118:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 914,
                  "nodeType": "ExpressionStatement",
                  "src": "1505:118:7"
                },
                {
                  "id": 915,
                  "nodeType": "PlaceholderStatement",
                  "src": "1633:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 917,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 888,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1492:2:7"
            },
            "src": "1471:170:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 943,
              "nodeType": "Block",
              "src": "1924:118:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 928,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 926,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 804,
                      "src": "1934:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$531",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 927,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 919,
                      "src": "1940:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$531",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1934:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$531",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 929,
                  "nodeType": "ExpressionStatement",
                  "src": "1934:10:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 930,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 806,
                      "src": "1954:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 931,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 921,
                      "src": "1965:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1954:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 933,
                  "nodeType": "ExpressionStatement",
                  "src": "1954:20:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 934,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 837,
                      "src": "1984:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 937,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 935,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 923,
                          "src": "2002:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 936,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2015:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2002:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 939,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "2032:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 940,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "2002:33:7",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 938,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 923,
                        "src": "2019:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1984:51:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 942,
                  "nodeType": "ExpressionStatement",
                  "src": "1984:51:7"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 944,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 919,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1871:8:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$531",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 918,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 531,
                    "src": "1871:3:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$531",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 921,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1881:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1881:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 923,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 944,
                  "src": "1900:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 922,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1900:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1870:46:7"
            },
            "returnParameters": {
              "id": 925,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1924:0:7"
            },
            "scope": 2277,
            "src": "1859:183:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 953,
              "nodeType": "Block",
              "src": "2220:37:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 950,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 946,
                        "src": "2244:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 949,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1978,
                      "src": "2230:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2230:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 952,
                  "nodeType": "ExpressionStatement",
                  "src": "2230:20:7"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 954,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 946,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 954,
                  "src": "2196:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 945,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2196:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2195:15:7"
            },
            "returnParameters": {
              "id": 948,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2220:0:7"
            },
            "scope": 2277,
            "src": "2174:83:7",
            "stateMutability": "nonpayable",
            "superFunction": 2909,
            "visibility": "external"
          },
          {
            "body": {
              "id": 964,
              "nodeType": "Block",
              "src": "2911:40:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 961,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 957,
                        "src": "2936:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 960,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2004,
                      "src": "2921:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2921:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 963,
                  "nodeType": "ExpressionStatement",
                  "src": "2921:23:7"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 965,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 957,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 965,
                  "src": "2874:26:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 955,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2874:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 956,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2874:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2873:28:7"
            },
            "returnParameters": {
              "id": 959,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2911:0:7"
            },
            "scope": 2277,
            "src": "2851:100:7",
            "stateMutability": "nonpayable",
            "superFunction": 2915,
            "visibility": "external"
          },
          {
            "body": {
              "id": 974,
              "nodeType": "Block",
              "src": "3859:35:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 971,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 967,
                        "src": "3877:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 970,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2062,
                      "src": "3869:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3869:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 973,
                  "nodeType": "ExpressionStatement",
                  "src": "3869:18:7"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 975,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 967,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 975,
                  "src": "3823:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 966,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3823:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3822:19:7"
            },
            "returnParameters": {
              "id": 969,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3859:0:7"
            },
            "scope": 2277,
            "src": "3807:87:7",
            "stateMutability": "payable",
            "superFunction": 2920,
            "visibility": "external"
          },
          {
            "body": {
              "id": 991,
              "nodeType": "Block",
              "src": "4328:67:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 984,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 978,
                        "src": "4353:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 983,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2004,
                      "src": "4338:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4338:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 986,
                  "nodeType": "ExpressionStatement",
                  "src": "4338:22:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 988,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 980,
                        "src": "4378:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 987,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2062,
                      "src": "4370:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4370:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 990,
                  "nodeType": "ExpressionStatement",
                  "src": "4370:18:7"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 992,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 981,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 978,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 992,
                  "src": "4265:25:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 976,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4265:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 977,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4265:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 980,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 992,
                  "src": "4292:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 979,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4292:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:46:7"
            },
            "returnParameters": {
              "id": 982,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4328:0:7"
            },
            "scope": 2277,
            "src": "4236:159:7",
            "stateMutability": "payable",
            "superFunction": 2928,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1223,
              "nodeType": "Block",
              "src": "4698:1904:7",
              "statements": [
                {
                  "assignments": [
                    1002
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1002,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4708:12:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1001,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4708:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1010,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1004,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 994,
                        "src": "4730:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1005,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "4737:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4737:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1007,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "4749:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1008,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 998,
                        "src": "4757:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1003,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1865,
                      "src": "4723:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 1009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4723:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4708:55:7"
                },
                {
                  "assignments": [
                    1012
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1012,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4773:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1011,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "4773:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1019,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1013,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 816,
                        "src": "4784:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1016,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1014,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "4795:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1015,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4795:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4784:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1018,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1017,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1002,
                      "src": "4807:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4784:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4773:39:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1022,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1012,
                              "src": "4838:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 1021,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4830:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1023,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4830:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1025,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4854:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1024,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4846:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4846:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4830:28:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1020,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "4822:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4822:37:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1029,
                  "nodeType": "ExpressionStatement",
                  "src": "4822:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1030,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "4870:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1034,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1031,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "4881:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 1032,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4881:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4870:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1035,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1033,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1002,
                        "src": "4893:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4870:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1038,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4914:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1037,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4906:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1039,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4906:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 1036,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "4901:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4901:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4870:49:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1042,
                  "nodeType": "ExpressionStatement",
                  "src": "4870:49:7"
                },
                {
                  "assignments": [
                    1044
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1044,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4929:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1043,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "4929:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1048,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1045,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "4947:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1047,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1046,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 994,
                      "src": "4956:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4947:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4929:33:7"
                },
                {
                  "assignments": [
                    1050
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1050,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "4972:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1049,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4972:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1057,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1052,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "4989:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1053,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1012,
                            "src": "4997:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1054,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 110,
                          "src": "4997:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4997:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1051,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2189,
                      "src": "4985:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4985:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4972:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1061,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1050,
                        "src": "5034:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5041:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1058,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1012,
                        "src": "5019:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1060,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 87,
                      "src": "5019:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5019:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1064,
                  "nodeType": "ExpressionStatement",
                  "src": "5019:27:7"
                },
                {
                  "assignments": [
                    1066
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1066,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 1223,
                      "src": "5057:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1065,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 823,
                        "src": "5057:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1070,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1068,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 994,
                        "src": "5083:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1067,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1765,
                      "src": "5077:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                        "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5077:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5057:32:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    },
                    "id": 1074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1071,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1066,
                      "src": "5103:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1072,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "5119:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                          "typeString": "type(enum HashRegistrar.Mode)"
                        }
                      },
                      "id": 1073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5119:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "src": "5103:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "id": 1093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1090,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1066,
                        "src": "5306:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1091,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 823,
                          "src": "5322:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                            "typeString": "type(enum HashRegistrar.Mode)"
                          }
                        },
                        "id": 1092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5322:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "src": "5306:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1098,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1050,
                            "src": "5407:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1099,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 835,
                            "src": "5415:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5407:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1108,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1101,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1012,
                                "src": "5427:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 115,
                              "src": "5427:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5427:18:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1107,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1104,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1044,
                                "src": "5448:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1105,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 841,
                              "src": "5448:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1106,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 829,
                              "src": "5469:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5448:33:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5427:54:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5407:74:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1125,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1050,
                            "src": "5648:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1126,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1044,
                              "src": "5656:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1127,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 845,
                            "src": "5656:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5648:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1178,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1050,
                              "src": "6246:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1179,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1044,
                                "src": "6254:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1180,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 843,
                              "src": "6254:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6246:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1217,
                            "nodeType": "Block",
                            "src": "6452:144:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1206,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6522:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1203,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1012,
                                      "src": "6508:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1205,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 92,
                                    "src": "6508:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1207,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6508:18:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1208,
                                "nodeType": "ExpressionStatement",
                                "src": "6508:18:7"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1210,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 994,
                                      "src": "6557:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1211,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3335,
                                        "src": "6564:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1212,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6564:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1213,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1050,
                                      "src": "6576:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 1214,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6583:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 1209,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2878,
                                    "src": "6545:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1215,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6545:40:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1216,
                                "nodeType": "EmitStatement",
                                "src": "6540:45:7"
                              }
                            ]
                          },
                          "id": 1218,
                          "nodeType": "IfStatement",
                          "src": "6242:354:7",
                          "trueBody": {
                            "id": 1202,
                            "nodeType": "Block",
                            "src": "6263:183:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1186,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1182,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1044,
                                      "src": "6329:1:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 1184,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 843,
                                    "src": "6329:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 1185,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1050,
                                    "src": "6339:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6329:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1187,
                                "nodeType": "ExpressionStatement",
                                "src": "6329:15:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1191,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6372:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1188,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1012,
                                      "src": "6358:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1190,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 92,
                                    "src": "6358:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1192,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6358:18:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1193,
                                "nodeType": "ExpressionStatement",
                                "src": "6358:18:7"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1195,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 994,
                                      "src": "6407:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1196,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3335,
                                        "src": "6414:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1197,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6414:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1198,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1050,
                                      "src": "6426:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1199,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6433:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 1194,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2878,
                                    "src": "6395:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1200,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6395:40:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1201,
                                "nodeType": "EmitStatement",
                                "src": "6390:45:7"
                              }
                            ]
                          }
                        },
                        "id": 1219,
                        "nodeType": "IfStatement",
                        "src": "5644:952:7",
                        "trueBody": {
                          "id": 1177,
                          "nodeType": "Block",
                          "src": "5670:566:7",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 1136,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1130,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1044,
                                        "src": "5772:1:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1131,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 839,
                                      "src": "5772:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 1129,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5764:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1132,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5764:15:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 1134,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5791:3:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 1133,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5783:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1135,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5783:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5764:31:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 1149,
                              "nodeType": "IfStatement",
                              "src": "5760:145:7",
                              "trueBody": {
                                "id": 1148,
                                "nodeType": "Block",
                                "src": "5797:108:7",
                                "statements": [
                                  {
                                    "assignments": [
                                      1138
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 1138,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 1148,
                                        "src": "5815:19:7",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$116",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 1137,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 116,
                                          "src": "5815:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$116",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 1141,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1139,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1044,
                                        "src": "5837:1:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1140,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 839,
                                      "src": "5837:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$116",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5815:28:7"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 1145,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5886:3:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1142,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1138,
                                          "src": "5861:14:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$116",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 1144,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 92,
                                        "src": "5861:24:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 1146,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5861:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1147,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5861:29:7"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1155,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1150,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6042:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1152,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 843,
                                  "src": "6042:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1153,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6052:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1154,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 845,
                                  "src": "6052:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6042:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1156,
                              "nodeType": "ExpressionStatement",
                              "src": "6042:22:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1161,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1157,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6120:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1159,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 845,
                                  "src": "6120:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1160,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1050,
                                  "src": "6135:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6120:20:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1162,
                              "nodeType": "ExpressionStatement",
                              "src": "6120:20:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1167,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1163,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1044,
                                    "src": "6154:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1165,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 839,
                                  "src": "6154:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1166,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1012,
                                  "src": "6163:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6154:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1168,
                              "nodeType": "ExpressionStatement",
                              "src": "6154:12:7"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1170,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 994,
                                    "src": "6197:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1171,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3335,
                                      "src": "6204:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 1172,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6204:10:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 1173,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1050,
                                    "src": "6216:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1174,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6223:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 1169,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2878,
                                  "src": "6185:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 1175,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6185:40:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1176,
                              "nodeType": "EmitStatement",
                              "src": "6180:45:7"
                            }
                          ]
                        }
                      },
                      "id": 1220,
                      "nodeType": "IfStatement",
                      "src": "5403:1193:7",
                      "trueBody": {
                        "id": 1124,
                        "nodeType": "Block",
                        "src": "5483:155:7",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 1113,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5564:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1110,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1012,
                                  "src": "5550:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$116",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 1112,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 92,
                                "src": "5550:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 1114,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5550:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1115,
                            "nodeType": "ExpressionStatement",
                            "src": "5550:18:7"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1117,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 994,
                                  "src": "5599:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1118,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3335,
                                    "src": "5606:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 1119,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5606:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1120,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1050,
                                  "src": "5618:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 1121,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5625:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1116,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2878,
                                "src": "5587:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 1122,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5587:40:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1123,
                            "nodeType": "EmitStatement",
                            "src": "5582:45:7"
                          }
                        ]
                      }
                    },
                    "id": 1221,
                    "nodeType": "IfStatement",
                    "src": "5302:1294:7",
                    "trueBody": {
                      "id": 1097,
                      "nodeType": "Block",
                      "src": "5335:62:7",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1094,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                3340,
                                3341
                              ],
                              "referencedDeclaration": 3340,
                              "src": "5378:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 1095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5378:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 1096,
                          "nodeType": "ExpressionStatement",
                          "src": "5378:8:7"
                        }
                      ]
                    }
                  },
                  "id": 1222,
                  "nodeType": "IfStatement",
                  "src": "5099:1497:7",
                  "trueBody": {
                    "id": 1089,
                    "nodeType": "Block",
                    "src": "5131:165:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 1078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5224:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1075,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1012,
                              "src": "5210:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 92,
                            "src": "5210:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5210:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1080,
                        "nodeType": "ExpressionStatement",
                        "src": "5210:16:7"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 994,
                              "src": "5257:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1083,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3335,
                                "src": "5264:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1084,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5264:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1085,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1050,
                              "src": "5276:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1086,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5283:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1081,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2878,
                            "src": "5245:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 1087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5245:40:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1088,
                        "nodeType": "EmitStatement",
                        "src": "5240:45:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 1224,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 994,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4646:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4646:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 996,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4661:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 995,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 998,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1224,
                  "src": "4674:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4674:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4645:43:7"
            },
            "returnParameters": {
              "id": 1000,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4698:0:7"
            },
            "scope": 2277,
            "src": "4627:1975:7",
            "stateMutability": "nonpayable",
            "superFunction": 2937,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1289,
              "nodeType": "Block",
              "src": "6775:786:7",
              "statements": [
                {
                  "assignments": [
                    1232
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1232,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1289,
                      "src": "6785:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1231,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "6785:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1238,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1233,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 816,
                        "src": "6796:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1235,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1234,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "6807:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6796:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1237,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1236,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1228,
                      "src": "6815:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6796:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6785:35:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1241,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1232,
                                "src": "7256:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$116",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 1240,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7248:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1242,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7248:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 1244,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7272:3:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 1243,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7264:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1245,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7264:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7248:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1255,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1247,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3337,
                            "src": "7280:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1254,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1252,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1248,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1232,
                                    "src": "7287:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$116",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1249,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 115,
                                  "src": "7287:16:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 1250,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7287:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1251,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 826,
                                "src": "7308:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7287:39:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 1253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7329:7:7",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7287:49:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7280:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7248:88:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1239,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "7240:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7240:97:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1258,
                  "nodeType": "ExpressionStatement",
                  "src": "7240:97:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1262,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "7427:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7427:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1259,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1232,
                        "src": "7414:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1261,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 75,
                      "src": "7414:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7414:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1265,
                  "nodeType": "ExpressionStatement",
                  "src": "7414:24:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7462:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1266,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1232,
                        "src": "7448:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 92,
                      "src": "7448:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7448:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1271,
                  "nodeType": "ExpressionStatement",
                  "src": "7448:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1272,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "7474:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1275,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1273,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1226,
                          "src": "7485:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7474:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1276,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1274,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1228,
                        "src": "7493:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7474:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7506:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1277,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "7501:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7501:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7474:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1281,
                  "nodeType": "ExpressionStatement",
                  "src": "7474:34:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1283,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1228,
                        "src": "7535:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1284,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "7541:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7549:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7552:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 1282,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2878,
                      "src": "7523:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 1287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7523:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1288,
                  "nodeType": "EmitStatement",
                  "src": "7518:36:7"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 1290,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1226,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1290,
                  "src": "6736:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6736:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1228,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 1290,
                  "src": "6752:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6752:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6735:30:7"
            },
            "returnParameters": {
              "id": 1230,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6775:0:7"
            },
            "scope": 2277,
            "src": "6717:844:7",
            "stateMutability": "nonpayable",
            "superFunction": 2944,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1344,
              "nodeType": "Block",
              "src": "7787:356:7",
              "statements": [
                {
                  "assignments": [
                    1299
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1299,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1344,
                      "src": "7797:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1298,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "7797:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1303,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1300,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "7815:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1302,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1301,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1292,
                      "src": "7824:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7815:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7797:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1304,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1299,
                        "src": "7929:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1306,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "7929:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1308,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1299,
                            "src": "7943:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1309,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 843,
                          "src": "7943:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1310,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 835,
                          "src": "7952:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1307,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2171,
                        "src": "7939:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1311,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7939:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7929:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1313,
                  "nodeType": "ExpressionStatement",
                  "src": "7929:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1319,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "7989:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1320,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "7989:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7998:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1314,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "7971:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1317,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "7971:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 87,
                      "src": "7971:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7971:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1323,
                  "nodeType": "ExpressionStatement",
                  "src": "7971:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1325,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1292,
                        "src": "8033:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1326,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1299,
                              "src": "8040:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1327,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "8040:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 100,
                          "src": "8040:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1329,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8040:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1324,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2153,
                      "src": "8014:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8014:41:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1331,
                  "nodeType": "ExpressionStatement",
                  "src": "8014:41:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1333,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1292,
                        "src": "8085:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1334,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1299,
                              "src": "8092:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1335,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "8092:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 100,
                          "src": "8092:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8092:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1338,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "8108:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1339,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "8108:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1340,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "8117:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1341,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "8117:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1332,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2888,
                      "src": "8070:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 1342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8070:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1343,
                  "nodeType": "EmitStatement",
                  "src": "8065:71:7"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 1345,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1295,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1292,
                    "src": "7780:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1296,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1294,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "7770:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7770:16:7"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1292,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1345,
                  "src": "7746:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1291,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7746:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7745:15:7"
            },
            "returnParameters": {
              "id": 1297,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7787:0:7"
            },
            "scope": 2277,
            "src": "7721:422:7",
            "stateMutability": "nonpayable",
            "superFunction": 2949,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1382,
              "nodeType": "Block",
              "src": "8437:174:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 1360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1356,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1349,
                          "src": "8455:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1358,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8475:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8467:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8467:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8455:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1355,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "8447:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8447:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1362,
                  "nodeType": "ExpressionStatement",
                  "src": "8447:33:7"
                },
                {
                  "assignments": [
                    1364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1364,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1382,
                      "src": "8491:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1363,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "8491:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1368,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1365,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "8509:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1367,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1366,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1347,
                      "src": "8518:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8509:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8491:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1374,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1349,
                        "src": "8550:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1369,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "8534:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1372,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "8534:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 75,
                      "src": "8534:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1375,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8534:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1376,
                  "nodeType": "ExpressionStatement",
                  "src": "8534:25:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1378,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1347,
                        "src": "8588:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1379,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1349,
                        "src": "8595:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 1377,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2153,
                      "src": "8569:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8569:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1381,
                  "nodeType": "ExpressionStatement",
                  "src": "8569:35:7"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 1383,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1352,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1347,
                    "src": "8430:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1353,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1351,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "8420:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8420:16:7"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1347,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1383,
                  "src": "8370:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1346,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8370:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1349,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1383,
                  "src": "8385:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 1348,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8385:15:7",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8369:41:7"
            },
            "returnParameters": {
              "id": 1354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8437:0:7"
            },
            "scope": 2277,
            "src": "8352:259:7",
            "stateMutability": "nonpayable",
            "superFunction": 2956,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1456,
              "nodeType": "Block",
              "src": "8877:382:7",
              "statements": [
                {
                  "assignments": [
                    1392
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1392,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1456,
                      "src": "8887:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1391,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "8887:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1396,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1393,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "8905:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1395,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1394,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1385,
                      "src": "8914:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8905:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8887:33:7"
                },
                {
                  "assignments": [
                    1398
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1398,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1456,
                      "src": "8930:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1397,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "8930:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1401,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1399,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1392,
                      "src": "8950:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 1400,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 839,
                    "src": "8950:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8930:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1403,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3337,
                            "src": "8975:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1404,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1392,
                                "src": "8982:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1405,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 841,
                              "src": "8982:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 1406,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9003:8:7",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8982:29:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8975:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1411,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 806,
                                "src": "9025:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1409,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 804,
                                "src": "9015:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$531",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1410,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 516,
                              "src": "9015:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9015:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1414,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3368,
                                "src": "9046:4:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1413,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9038:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9038:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "9015:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8975:76:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "8967:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8967:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1419,
                  "nodeType": "ExpressionStatement",
                  "src": "8967:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1420,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9063:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1422,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "9063:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1423,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9073:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9063:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1425,
                  "nodeType": "ExpressionStatement",
                  "src": "9063:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1426,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9084:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "9084:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9099:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9084:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1431,
                  "nodeType": "ExpressionStatement",
                  "src": "9084:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1432,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1392,
                        "src": "9110:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1434,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "9110:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9124:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1435,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "9119:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1437,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9119:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9110:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1439,
                  "nodeType": "ExpressionStatement",
                  "src": "9110:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1441,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1385,
                        "src": "9157:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1440,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "9137:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9137:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1443,
                  "nodeType": "ExpressionStatement",
                  "src": "9137:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 1447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9196:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1444,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1398,
                        "src": "9173:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 92,
                      "src": "9173:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9173:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1449,
                  "nodeType": "ExpressionStatement",
                  "src": "9173:28:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1451,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1385,
                        "src": "9229:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1452,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1392,
                          "src": "9236:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1453,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "9236:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1450,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2894,
                      "src": "9216:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9216:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1455,
                  "nodeType": "EmitStatement",
                  "src": "9211:33:7"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 1457,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1388,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1385,
                    "src": "8870:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1389,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1387,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "8860:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8860:16:7"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1385,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1457,
                  "src": "8836:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1384,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8836:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8835:15:7"
            },
            "returnParameters": {
              "id": 1390,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8877:0:7"
            },
            "scope": 2277,
            "src": "8815:444:7",
            "stateMutability": "nonpayable",
            "superFunction": 2961,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1577,
              "nodeType": "Block",
              "src": "9784:675:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1477,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1474,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1459,
                              "src": "9809:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 1473,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2276,
                            "src": "9802:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 1475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9802:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 1476,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9826:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9802:25:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1472,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "9794:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9794:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1479,
                  "nodeType": "ExpressionStatement",
                  "src": "9794:34:7"
                },
                {
                  "assignments": [
                    1481
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1481,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1577,
                      "src": "9838:12:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1480,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9838:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1485,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1459,
                            "src": "9874:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1483,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "9863:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1484,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9863:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1486,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9863:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1482,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "9853:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9853:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9838:50:7"
                },
                {
                  "assignments": [
                    1490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1490,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1577,
                      "src": "9899:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1489,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "9899:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1494,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1491,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "9917:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1493,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1492,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1481,
                      "src": "9926:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9917:14:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9899:32:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1496,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "9962:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1495,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "9942:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9942:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1498,
                  "nodeType": "ExpressionStatement",
                  "src": "9942:25:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1500,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1490,
                            "src": "9990:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1501,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 839,
                          "src": "9990:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$116",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$116",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 1499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9982:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1502,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9982:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 1504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10009:3:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1503,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10001:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10001:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9982:31:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1547,
                  "nodeType": "IfStatement",
                  "src": "9978:321:7",
                  "trueBody": {
                    "id": 1546,
                    "nodeType": "Block",
                    "src": "10015:284:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1515,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1507,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1490,
                              "src": "10130:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1509,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 843,
                            "src": "10130:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1511,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1490,
                                  "src": "10144:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1512,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 843,
                                "src": "10144:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1513,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 835,
                                "src": "10153:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 1510,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2171,
                              "src": "10140:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 1514,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10140:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10130:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1516,
                        "nodeType": "ExpressionStatement",
                        "src": "10130:32:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1525,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1522,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1490,
                                  "src": "10194:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1523,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 843,
                                "src": "10194:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1524,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10202:1:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10194:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 1526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10205:5:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1517,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10176:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1520,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10176:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 87,
                            "src": "10176:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 1527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10176:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1528,
                        "nodeType": "ExpressionStatement",
                        "src": "10176:35:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1534,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3335,
                                "src": "10241:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10241:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1529,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10225:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1532,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10225:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 75,
                            "src": "10225:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 1536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10225:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1537,
                        "nodeType": "ExpressionStatement",
                        "src": "10225:27:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 1543,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10283:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1538,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1490,
                                "src": "10266:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1541,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 839,
                              "src": "10266:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 92,
                            "src": "10266:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10266:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1545,
                        "nodeType": "ExpressionStatement",
                        "src": "10266:22:7"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1549,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "10330:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1550,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1459,
                        "src": "10336:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1551,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1490,
                          "src": "10350:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1552,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "10350:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1553,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1490,
                          "src": "10359:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1554,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "10359:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1548,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2904,
                      "src": "10314:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 1555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10314:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1556,
                  "nodeType": "EmitStatement",
                  "src": "10309:69:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1557,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10389:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1559,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "10389:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10399:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10389:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1562,
                  "nodeType": "ExpressionStatement",
                  "src": "10389:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1563,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10410:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1565,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "10410:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10425:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10410:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1568,
                  "nodeType": "ExpressionStatement",
                  "src": "10410:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1569,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1490,
                        "src": "10436:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1571,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "10436:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10450:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1572,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "10445:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10445:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10436:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1576,
                  "nodeType": "ExpressionStatement",
                  "src": "10436:16:7"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 1578,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1465,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1459,
                            "src": "9752:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1463,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "9741:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1464,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9741:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9741:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1462,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "9731:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9731:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1468,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "9768:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                        "typeString": "type(enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9768:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  }
                ],
                "id": 1470,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1461,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 862,
                  "src": "9723:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$823_$",
                    "typeString": "modifier (bytes32,enum HashRegistrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9723:56:7"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1459,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 1578,
                  "src": "9668:28:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9668:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9667:30:7"
            },
            "returnParameters": {
              "id": 1471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9784:0:7"
            },
            "scope": 2277,
            "src": "9644:815:7",
            "stateMutability": "nonpayable",
            "superFunction": 2966,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1614,
              "nodeType": "Block",
              "src": "11143:176:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1585,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "11161:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11161:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1587,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11178:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11161:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1584,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11153:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11153:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1590,
                  "nodeType": "ExpressionStatement",
                  "src": "11153:27:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 1602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1593,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1581,
                                "src": "11204:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 1598,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1597,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1594,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1581,
                                    "src": "11211:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 1595,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11211:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11227:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11211:17:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11204:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1592,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "11198:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                              "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1599,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11198:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1600,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "11234:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11234:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "11198:46:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1591,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11190:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11190:55:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1604,
                  "nodeType": "ExpressionStatement",
                  "src": "11190:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1606,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "11276:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11276:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11292:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11276:17:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1610,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "11295:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1611,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 806,
                        "src": "11303:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1605,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2128,
                      "src": "11256:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 1612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11256:56:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1613,
                  "nodeType": "ExpressionStatement",
                  "src": "11256:56:7"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 1615,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1581,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 1615,
                  "src": "11107:25:7",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1579,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11107:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1580,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11107:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11106:27:7"
            },
            "returnParameters": {
              "id": 1583,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11143:0:7"
            },
            "scope": 2277,
            "src": "11088:231:7",
            "stateMutability": "nonpayable",
            "superFunction": 2972,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1689,
              "nodeType": "Block",
              "src": "11621:496:7",
              "statements": [
                {
                  "assignments": [
                    1624
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1624,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 1689,
                      "src": "11631:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1623,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11631:7:7",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1629,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1627,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 806,
                        "src": "11661:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1625,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "11651:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 1626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 516,
                      "src": "11651:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 1628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11651:19:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11631:39:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1631,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1624,
                          "src": "11688:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1633,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3368,
                              "src": "11709:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 1632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11701:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11701:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11688:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1630,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "11680:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11680:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1637,
                  "nodeType": "ExpressionStatement",
                  "src": "11680:35:7"
                },
                {
                  "assignments": [
                    1639
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1639,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1689,
                      "src": "11754:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1638,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "11754:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1643,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1640,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "11772:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1642,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1641,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "11781:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11772:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11754:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1649,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1624,
                        "src": "11817:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1644,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11797:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1647,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "11797:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1648,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 80,
                      "src": "11797:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1650,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11797:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1651,
                  "nodeType": "ExpressionStatement",
                  "src": "11797:30:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1656,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "11940:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1657,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11947:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1658,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 839,
                        "src": "11947:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1659,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1639,
                          "src": "11955:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1660,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "11955:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1653,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1624,
                            "src": "11905:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1652,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2987,
                          "src": "11895:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$2987_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 1654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11895:20:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$2987",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 1655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2986,
                      "src": "11895:44:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$116_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 1661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11895:79:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1662,
                  "nodeType": "ExpressionStatement",
                  "src": "11895:79:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1669,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1663,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12015:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1665,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 839,
                      "src": "12015:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12029:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1666,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 116,
                        "src": "12024:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$116_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1668,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12024:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12015:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1670,
                  "nodeType": "ExpressionStatement",
                  "src": "12015:16:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1671,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12041:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1673,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 841,
                      "src": "12041:18:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12062:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12041:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1676,
                  "nodeType": "ExpressionStatement",
                  "src": "12041:22:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1681,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1677,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12073:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1679,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "12073:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1680,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12083:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12073:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1682,
                  "nodeType": "ExpressionStatement",
                  "src": "12073:11:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1683,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1639,
                        "src": "12094:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1685,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "12094:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12109:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12094:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1688,
                  "nodeType": "ExpressionStatement",
                  "src": "12094:16:7"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 1690,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1620,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1617,
                    "src": "11614:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1621,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1619,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 887,
                  "src": "11604:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11604:16:7"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1617,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1690,
                  "src": "11580:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1616,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11580:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11579:15:7"
            },
            "returnParameters": {
              "id": 1622,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11621:0:7"
            },
            "scope": 2277,
            "src": "11552:565:7",
            "stateMutability": "nonpayable",
            "superFunction": 2977,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1705,
              "nodeType": "Block",
              "src": "12603:82:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1699,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1692,
                    "src": "12613:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1700,
                  "nodeType": "ExpressionStatement",
                  "src": "12613:4:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1701,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1694,
                    "src": "12619:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1702,
                  "nodeType": "ExpressionStatement",
                  "src": "12619:4:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1703,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1696,
                    "src": "12625:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1704,
                  "nodeType": "ExpressionStatement",
                  "src": "12625:16:7"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 1706,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12546:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12546:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1694,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12560:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$116",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1693,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 116,
                    "src": "12560:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1696,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1706,
                  "src": "12571:21:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1695,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12571:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12545:48:7"
            },
            "returnParameters": {
              "id": 1698,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12603:0:7"
            },
            "scope": 2277,
            "src": "12513:172:7",
            "stateMutability": "nonpayable",
            "superFunction": 2986,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1764,
              "nodeType": "Block",
              "src": "12971:528:7",
              "statements": [
                {
                  "assignments": [
                    1714
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1714,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1764,
                      "src": "12981:19:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1713,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "12981:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1718,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1715,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "13003:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1717,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1716,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1708,
                      "src": "13012:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13003:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12981:37:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13033:22:7",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1720,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1708,
                          "src": "13044:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1721,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3337,
                          "src": "13051:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1719,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1818,
                        "src": "13034:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1722,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13034:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1728,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "13119:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1729,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1714,
                          "src": "13125:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1730,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "13125:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13119:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1761,
                      "nodeType": "Block",
                      "src": "13337:156:7",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1748,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1714,
                                "src": "13355:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1749,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 845,
                              "src": "13355:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13375:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13355:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1759,
                            "nodeType": "Block",
                            "src": "13433:50:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1756,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13458:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1757,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13458:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1758,
                                "nodeType": "Return",
                                "src": "13451:17:7"
                              }
                            ]
                          },
                          "id": 1760,
                          "nodeType": "IfStatement",
                          "src": "13351:132:7",
                          "trueBody": {
                            "id": 1755,
                            "nodeType": "Block",
                            "src": "13378:49:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1752,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13403:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1753,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13403:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1754,
                                "nodeType": "Return",
                                "src": "13396:16:7"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1762,
                    "nodeType": "IfStatement",
                    "src": "13115:378:7",
                    "trueBody": {
                      "id": 1747,
                      "nodeType": "Block",
                      "src": "13149:182:7",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1737,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1732,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3337,
                              "src": "13167:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1736,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1733,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1714,
                                  "src": "13173:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1734,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 841,
                                "src": "13173:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1735,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 829,
                                "src": "13198:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13173:37:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13167:43:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1745,
                            "nodeType": "Block",
                            "src": "13270:51:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1742,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13295:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1743,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13295:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1744,
                                "nodeType": "Return",
                                "src": "13288:18:7"
                              }
                            ]
                          },
                          "id": 1746,
                          "nodeType": "IfStatement",
                          "src": "13163:158:7",
                          "trueBody": {
                            "id": 1741,
                            "nodeType": "Block",
                            "src": "13212:52:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1738,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 823,
                                    "src": "13237:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                                      "typeString": "type(enum HashRegistrar.Mode)"
                                    }
                                  },
                                  "id": 1739,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13237:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$823",
                                    "typeString": "enum HashRegistrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1712,
                                "id": 1740,
                                "nodeType": "Return",
                                "src": "13230:19:7"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1763,
                  "nodeType": "IfStatement",
                  "src": "13029:464:7",
                  "trueBody": {
                    "id": 1727,
                    "nodeType": "Block",
                    "src": "13057:52:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1724,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "13078:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13078:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1712,
                        "id": 1726,
                        "nodeType": "Return",
                        "src": "13071:27:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1765,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1708,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1765,
                  "src": "12929:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1707,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12929:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12928:15:7"
            },
            "returnParameters": {
              "id": 1712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1711,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1765,
                  "src": "12965:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1710,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "12965:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12964:6:7"
            },
            "scope": 2277,
            "src": "12914:585:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1801,
              "nodeType": "Block",
              "src": "13591:141:7",
              "statements": [
                {
                  "assignments": [
                    1781
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1781,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1801,
                      "src": "13601:15:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1780,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "13601:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1785,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1782,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "13619:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1784,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1783,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1767,
                      "src": "13628:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13619:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13601:33:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1787,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1767,
                            "src": "13658:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1786,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1765,
                          "src": "13652:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                            "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                          }
                        },
                        "id": 1788,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13652:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1790,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1781,
                              "src": "13674:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1791,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 839,
                            "src": "13674:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$116",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 1789,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13666:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13666:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1793,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13683:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1794,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "13683:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1795,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13703:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 843,
                        "src": "13703:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1797,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1781,
                          "src": "13712:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1798,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 845,
                        "src": "13712:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1799,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "13651:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$823_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum HashRegistrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1779,
                  "id": 1800,
                  "nodeType": "Return",
                  "src": "13644:81:7"
                }
              ]
            },
            "documentation": null,
            "id": 1802,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1768,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1767,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13522:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1766,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13522:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13521:15:7"
            },
            "returnParameters": {
              "id": 1779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1770,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13558:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$823",
                    "typeString": "enum HashRegistrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1769,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 823,
                    "src": "13558:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1772,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13564:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1771,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13564:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1774,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13573:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1773,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13573:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1776,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13579:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1775,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13579:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1778,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1802,
                  "src": "13585:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1777,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13585:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13557:33:7"
            },
            "scope": 2277,
            "src": "13505:227:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1817,
              "nodeType": "Block",
              "src": "14137:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1811,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1806,
                      "src": "14154:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1813,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1804,
                          "src": "14182:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1812,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1841,
                        "src": "14167:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 1814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14167:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14154:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1810,
                  "id": 1816,
                  "nodeType": "Return",
                  "src": "14147:41:7"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 1818,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1804,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14070:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14070:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1806,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14085:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1805,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14085:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14069:32:7"
            },
            "returnParameters": {
              "id": 1810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1809,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1818,
                  "src": "14123:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1808,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14123:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14122:14:7"
            },
            "scope": 2277,
            "src": "14051:144:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1840,
              "nodeType": "Block",
              "src": "14502:140:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1825,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 837,
                      "src": "14519:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1826,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 832,
                                  "src": "14539:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1831,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 1828,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1820,
                                            "src": "14560:5:7",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 1827,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14555:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 1829,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14555:11:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 1830,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14570:3:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14555:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1832,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14554:20:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14539:35:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1834,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14538:37:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 1835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14579:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14538:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1837,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14537:46:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14519:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1824,
                  "id": 1839,
                  "nodeType": "Return",
                  "src": "14512:71:7"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 1841,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1820,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1841,
                  "src": "14460:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14460:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14459:15:7"
            },
            "returnParameters": {
              "id": 1824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1823,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1841,
                  "src": "14496:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1822,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14496:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14495:6:7"
            },
            "scope": 2277,
            "src": "14436:206:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1864,
              "nodeType": "Block",
              "src": "15032:77:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1857,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1843,
                            "src": "15076:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1858,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1845,
                            "src": "15082:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1859,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1847,
                            "src": "15089:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1860,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1849,
                            "src": "15096:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1855,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3322,
                            "src": "15059:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15059:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15059:42:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1854,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3329,
                      "src": "15049:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15049:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1853,
                  "id": 1863,
                  "nodeType": "Return",
                  "src": "15042:60:7"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 1865,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1843,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14947:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1842,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14947:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1845,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14961:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1844,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14961:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1847,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14976:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1846,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14976:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1849,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "14988:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14988:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14946:55:7"
            },
            "returnParameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1852,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "15023:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15023:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15022:9:7"
            },
            "scope": 2277,
            "src": "14931:178:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1918,
              "nodeType": "Block",
              "src": "15168:302:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1872,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "15192:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1870,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "15182:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 1871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 516,
                        "src": "15182:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 1873,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15182:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1875,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3368,
                          "src": "15213:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 1874,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15205:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1876,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15205:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15182:36:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1917,
                  "nodeType": "IfStatement",
                  "src": "15178:286:7",
                  "trueBody": {
                    "id": 1916,
                    "nodeType": "Block",
                    "src": "15220:244:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1881,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 806,
                              "src": "15254:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1882,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1867,
                              "src": "15264:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1884,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3368,
                                  "src": "15279:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 1883,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15271:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1885,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15271:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1878,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15234:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1880,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 488,
                            "src": "15234:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 1886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15234:51:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1887,
                        "nodeType": "ExpressionStatement",
                        "src": "15234:51:7"
                      },
                      {
                        "assignments": [
                          1889
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1889,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 1916,
                            "src": "15299:12:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1888,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15299:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1897,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1893,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 806,
                                  "src": "15341:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1894,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1867,
                                  "src": "15351:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1891,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3322,
                                  "src": "15324:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1892,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15324:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15324:33:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1890,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3329,
                            "src": "15314:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15314:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15299:59:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1901,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1889,
                              "src": "15388:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 1903,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15402:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1902,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15394:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1904,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15394:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1898,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15372:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1900,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 495,
                            "src": "15372:15:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 1905,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15372:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1906,
                        "nodeType": "ExpressionStatement",
                        "src": "15372:35:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1910,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1889,
                              "src": "15434:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 1912,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15448:3:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1911,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15440:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1913,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15440:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1907,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 804,
                              "src": "15421:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$531",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 1909,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 502,
                            "src": "15421:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 1914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15421:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1915,
                        "nodeType": "ExpressionStatement",
                        "src": "15421:32:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1919,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1867,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 1919,
                  "src": "15144:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15144:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15143:15:7"
            },
            "returnParameters": {
              "id": 1869,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15168:0:7"
            },
            "scope": 2277,
            "src": "15115:355:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1977,
              "nodeType": "Block",
              "src": "15538:366:7",
              "statements": [
                {
                  "assignments": [
                    1927
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1927,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 1977,
                      "src": "15548:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1926,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 823,
                        "src": "15548:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1931,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1929,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1921,
                        "src": "15566:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1928,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1765,
                      "src": "15560:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$823_$",
                        "typeString": "function (bytes32) view returns (enum HashRegistrar.Mode)"
                      }
                    },
                    "id": 1930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15560:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15548:24:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$823",
                      "typeString": "enum HashRegistrar.Mode"
                    },
                    "id": 1935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1932,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1927,
                      "src": "15586:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1933,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 823,
                        "src": "15594:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                          "typeString": "type(enum HashRegistrar.Mode)"
                        }
                      },
                      "id": 1934,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15594:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$823",
                        "typeString": "enum HashRegistrar.Mode"
                      }
                    },
                    "src": "15586:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1937,
                  "nodeType": "IfStatement",
                  "src": "15582:33:7",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 1925,
                    "id": 1936,
                    "nodeType": "Return",
                    "src": "15608:7:7"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$823",
                          "typeString": "enum HashRegistrar.Mode"
                        },
                        "id": 1942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1939,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1927,
                          "src": "15632:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1940,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 823,
                            "src": "15640:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$823_$",
                              "typeString": "type(enum HashRegistrar.Mode)"
                            }
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15640:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$823",
                            "typeString": "enum HashRegistrar.Mode"
                          }
                        },
                        "src": "15632:17:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "15624:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15624:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1944,
                  "nodeType": "ExpressionStatement",
                  "src": "15624:26:7"
                },
                {
                  "assignments": [
                    1946
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1946,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 1977,
                      "src": "15661:24:7",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1945,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 846,
                        "src": "15661:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1950,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1947,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 810,
                      "src": "15688:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$846_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1949,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1948,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1921,
                      "src": "15697:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15688:15:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$846_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15661:42:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1951,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15713:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 841,
                      "src": "15713:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1954,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3337,
                        "src": "15743:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1955,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 826,
                        "src": "15749:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15743:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15713:54:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1958,
                  "nodeType": "ExpressionStatement",
                  "src": "15713:54:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1959,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15777:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1961,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 843,
                      "src": "15777:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15796:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15777:20:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1964,
                  "nodeType": "ExpressionStatement",
                  "src": "15777:20:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1965,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1946,
                        "src": "15807:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1967,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 845,
                      "src": "15807:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15831:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15807:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1970,
                  "nodeType": "ExpressionStatement",
                  "src": "15807:25:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1921,
                        "src": "15862:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1946,
                          "src": "15869:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$846_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 841,
                        "src": "15869:27:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1971,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2860,
                      "src": "15847:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15847:50:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1976,
                  "nodeType": "EmitStatement",
                  "src": "15842:55:7"
                }
              ]
            },
            "documentation": null,
            "id": 1978,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 1924,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1923,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 917,
                  "src": "15523:12:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15523:14:7"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1921,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1978,
                  "src": "15499:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15499:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15498:15:7"
            },
            "returnParameters": {
              "id": 1925,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15538:0:7"
            },
            "scope": 2277,
            "src": "15476:428:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2003,
              "nodeType": "Block",
              "src": "15969:109:7",
              "statements": [
                {
                  "body": {
                    "id": 2001,
                    "nodeType": "Block",
                    "src": "16022:50:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1996,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1981,
                                "src": "16050:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 1998,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1997,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1985,
                                "src": "16058:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16050:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1995,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1978,
                            "src": "16036:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 1999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16036:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2000,
                        "nodeType": "ExpressionStatement",
                        "src": "16036:25:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1988,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1985,
                      "src": "15996:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1989,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1981,
                        "src": "16000:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 1990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "16000:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15996:18:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2002,
                  "initializationExpression": {
                    "assignments": [
                      1985
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1985,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2002,
                        "src": "15984:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1984,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15984:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1987,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15993:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15984:10:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1993,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "16016:4:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1992,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1985,
                        "src": "16016:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1994,
                    "nodeType": "ExpressionStatement",
                    "src": "16016:4:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "15979:93:7"
                }
              ]
            },
            "documentation": null,
            "id": 2004,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1981,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2004,
                  "src": "15934:24:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1979,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15934:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1980,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15934:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15933:26:7"
            },
            "returnParameters": {
              "id": 1983,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15969:0:7"
            },
            "scope": 2277,
            "src": "15910:168:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2061,
              "nodeType": "Block",
              "src": "16129:357:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2021,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2011,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 816,
                                  "src": "16155:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 2014,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2012,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3335,
                                    "src": "16166:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2013,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16166:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16155:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 2016,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2015,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2006,
                                "src": "16178:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16155:33:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$116",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 2010,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16147:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2017,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16147:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2019,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16201:3:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2018,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16193:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2020,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16193:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16147:58:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2009,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "16139:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16139:67:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2023,
                  "nodeType": "ExpressionStatement",
                  "src": "16139:67:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2025,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16224:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16224:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2027,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 835,
                          "src": "16237:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16224:21:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2024,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3338,
                        3339
                      ],
                      "referencedDeclaration": 3338,
                      "src": "16216:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16216:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2030,
                  "nodeType": "ExpressionStatement",
                  "src": "16216:30:7"
                },
                {
                  "assignments": [
                    2032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2032,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2061,
                      "src": "16311:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2031,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 116,
                        "src": "16311:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$116",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2043,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16364:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16364:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2037,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16353:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16353:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2034,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16323:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2033,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 368,
                                "src": "16327:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$368",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 2035,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16322:24:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 2036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16322:30:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$value_$",
                          "typeString": "function (uint256) returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 2039,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16322:41:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$368_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 2042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16322:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$368",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16311:64:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2044,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 816,
                          "src": "16385:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2048,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2045,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3335,
                            "src": "16396:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16396:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16385:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$116_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2049,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2047,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2006,
                        "src": "16408:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16385:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2050,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2032,
                      "src": "16421:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$116",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16385:39:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$116",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2052,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:39:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2054,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2006,
                        "src": "16446:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2055,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16457:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2056,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16457:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2057,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3335,
                          "src": "16469:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16469:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2053,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2868,
                      "src": "16439:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16439:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2060,
                  "nodeType": "EmitStatement",
                  "src": "16434:45:7"
                }
              ]
            },
            "documentation": null,
            "id": 2062,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2006,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2062,
                  "src": "16101:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2005,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16101:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16100:19:7"
            },
            "returnParameters": {
              "id": 2008,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16129:0:7"
            },
            "scope": 2277,
            "src": "16084:402:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2127,
              "nodeType": "Block",
              "src": "16579:441:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2075,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16647:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2076,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2067,
                          "src": "16653:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2078,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2077,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2064,
                          "src": "16660:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16653:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2080,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3368,
                            "src": "16674:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 2079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16666:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16666:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2072,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16627:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 488,
                      "src": "16627:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16627:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2083,
                  "nodeType": "ExpressionStatement",
                  "src": "16627:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2069,
                      "src": "16690:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2088,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2069,
                              "src": "16724:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2089,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2067,
                                "src": "16730:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2091,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2090,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2064,
                                "src": "16737:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16730:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2086,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3322,
                              "src": "16707:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 2087,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16707:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 2092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16707:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 2085,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3329,
                        "src": "16697:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16697:46:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16690:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "16690:53:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2098,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2096,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2064,
                      "src": "16802:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16808:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16802:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2108,
                  "nodeType": "IfStatement",
                  "src": "16798:80:7",
                  "trueBody": {
                    "id": 2107,
                    "nodeType": "Block",
                    "src": "16811:67:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2100,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2064,
                                "src": "16845:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2101,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16851:1:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16845:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2103,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2067,
                              "src": "16854:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2104,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2069,
                              "src": "16862:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2099,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2128,
                            "src": "16825:19:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16825:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2106,
                        "nodeType": "ExpressionStatement",
                        "src": "16825:42:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2112,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16952:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2114,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16966:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16958:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16958:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16936:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 495,
                      "src": "16936:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16936:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2117,
                  "nodeType": "ExpressionStatement",
                  "src": "16936:35:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2121,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "16994:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17008:3:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "17000:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17000:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2118,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 804,
                        "src": "16981:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$531",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 502,
                      "src": "16981:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16981:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2126,
                  "nodeType": "ExpressionStatement",
                  "src": "16981:32:7"
                }
              ]
            },
            "documentation": null,
            "id": 2128,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2070,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2064,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16521:8:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2063,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16521:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2067,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16531:23:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2065,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16531:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2066,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16531:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2069,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2128,
                  "src": "16556:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2068,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16556:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16520:49:7"
            },
            "returnParameters": {
              "id": 2071,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16579:0:7"
            },
            "scope": 2277,
            "src": "16492:528:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2152,
              "nodeType": "Block",
              "src": "17276:118:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2137,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "17300:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2135,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "17290:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 516,
                        "src": "17290:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17290:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2140,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3368,
                          "src": "17321:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2277",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17313:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2141,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17313:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17290:36:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2151,
                  "nodeType": "IfStatement",
                  "src": "17286:101:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2146,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 806,
                          "src": "17360:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2147,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2130,
                          "src": "17370:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2148,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2132,
                          "src": "17377:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2143,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 804,
                          "src": "17340:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$531",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 488,
                        "src": "17340:19:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17340:47:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2150,
                    "nodeType": "ExpressionStatement",
                    "src": "17340:47:7"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2153,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2130,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2153,
                  "src": "17233:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2129,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17233:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2132,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2153,
                  "src": "17248:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2131,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17248:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17232:34:7"
            },
            "returnParameters": {
              "id": 2134,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17276:0:7"
            },
            "scope": 2277,
            "src": "17205:189:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2170,
              "nodeType": "Block",
              "src": "17662:83:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2162,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "17676:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2163,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2157,
                      "src": "17680:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17676:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2167,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2157,
                      "src": "17737:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2161,
                    "id": 2168,
                    "nodeType": "Return",
                    "src": "17730:8:7"
                  },
                  "id": 2169,
                  "nodeType": "IfStatement",
                  "src": "17672:66:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2165,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "17702:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2161,
                    "id": 2166,
                    "nodeType": "Return",
                    "src": "17695:8:7"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 2171,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2155,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17617:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17617:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17625:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17625:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17616:16:7"
            },
            "returnParameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2171,
                  "src": "17656:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17656:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17655:6:7"
            },
            "scope": 2277,
            "src": "17604:141:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2188,
              "nodeType": "Block",
              "src": "18013:83:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2180,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2173,
                      "src": "18027:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "18031:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18027:5:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2185,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2175,
                      "src": "18088:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2179,
                    "id": 2186,
                    "nodeType": "Return",
                    "src": "18081:8:7"
                  },
                  "id": 2187,
                  "nodeType": "IfStatement",
                  "src": "18023:66:7",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2183,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2173,
                      "src": "18053:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2179,
                    "id": 2184,
                    "nodeType": "Return",
                    "src": "18046:8:7"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 2189,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2173,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "17968:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2172,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17968:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2175,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "17976:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2174,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17976:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17967:16:7"
            },
            "returnParameters": {
              "id": 2179,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2178,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2189,
                  "src": "18007:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18007:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18006:6:7"
            },
            "scope": 2277,
            "src": "17955:141:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2275,
              "nodeType": "Block",
              "src": "18334:779:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2196,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2191,
                    "src": "18344:1:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 2197,
                  "nodeType": "ExpressionStatement",
                  "src": "18344:1:7"
                },
                {
                  "assignments": [
                    2199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2199,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18462:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2198,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18462:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2200,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18462:8:7"
                },
                {
                  "assignments": [
                    2202
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2202,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18480:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2201,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18480:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2203,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18480:8:7"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 2199,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18521:3:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 2202,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18550:3:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2191,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18532:1:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2191,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18567:1:7",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 2199,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18571:3:7",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2204,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18498:100:7"
                },
                {
                  "assignments": [
                    2206
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2206,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 2275,
                      "src": "18594:8:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2205,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18594:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2208,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18605:1:7",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18594:12:7"
                },
                {
                  "body": {
                    "id": 2271,
                    "nodeType": "Block",
                    "src": "18644:443:7",
                    "statements": [
                      {
                        "assignments": [
                          2218
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2218,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 2271,
                            "src": "18658:7:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 2217,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18658:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2219,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18658:7:7"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 2199,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18705:3:7",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 2218,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18690:1:7",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 2220,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "18679:54:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 2223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2221,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2218,
                            "src": "18735:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 2222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18739:4:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18735:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 2231,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2229,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2218,
                              "src": "18796:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 2230,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18800:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18796:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 2239,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2237,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2218,
                                "src": "18857:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 2238,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18861:4:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18857:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 2247,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2245,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2218,
                                  "src": "18918:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 2246,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18922:4:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18918:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 2255,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2253,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2218,
                                    "src": "18979:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 2254,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18983:4:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18979:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 2265,
                                  "nodeType": "Block",
                                  "src": "19036:41:7",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2263,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2261,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2199,
                                          "src": "19054:3:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 2262,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "19061:1:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "19054:8:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2264,
                                      "nodeType": "ExpressionStatement",
                                      "src": "19054:8:7"
                                    }
                                  ]
                                },
                                "id": 2266,
                                "nodeType": "IfStatement",
                                "src": "18975:102:7",
                                "trueBody": {
                                  "id": 2260,
                                  "nodeType": "Block",
                                  "src": "18989:41:7",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2258,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2256,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2199,
                                          "src": "19007:3:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 2257,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "19014:1:7",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "19007:8:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2259,
                                      "nodeType": "ExpressionStatement",
                                      "src": "19007:8:7"
                                    }
                                  ]
                                }
                              },
                              "id": 2267,
                              "nodeType": "IfStatement",
                              "src": "18914:163:7",
                              "trueBody": {
                                "id": 2252,
                                "nodeType": "Block",
                                "src": "18928:41:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2250,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 2248,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2199,
                                        "src": "18946:3:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 2249,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18953:1:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18946:8:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 2251,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18946:8:7"
                                  }
                                ]
                              }
                            },
                            "id": 2268,
                            "nodeType": "IfStatement",
                            "src": "18853:224:7",
                            "trueBody": {
                              "id": 2244,
                              "nodeType": "Block",
                              "src": "18867:41:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2242,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 2240,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2199,
                                      "src": "18885:3:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2241,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18892:1:7",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18885:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2243,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18885:8:7"
                                }
                              ]
                            }
                          },
                          "id": 2269,
                          "nodeType": "IfStatement",
                          "src": "18792:285:7",
                          "trueBody": {
                            "id": 2236,
                            "nodeType": "Block",
                            "src": "18806:41:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2234,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 2232,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2199,
                                    "src": "18824:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2233,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18831:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18824:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2235,
                                "nodeType": "ExpressionStatement",
                                "src": "18824:8:7"
                              }
                            ]
                          }
                        },
                        "id": 2270,
                        "nodeType": "IfStatement",
                        "src": "18731:346:7",
                        "trueBody": {
                          "id": 2228,
                          "nodeType": "Block",
                          "src": "18745:41:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2226,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 2224,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2199,
                                  "src": "18763:3:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 2225,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18770:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18763:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2227,
                              "nodeType": "ExpressionStatement",
                              "src": "18763:8:7"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2211,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2199,
                      "src": "18626:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2212,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2202,
                      "src": "18632:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18626:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2272,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2209,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2206,
                      "src": "18621:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2210,
                    "nodeType": "ExpressionStatement",
                    "src": "18621:3:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2215,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18637:5:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2214,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2206,
                        "src": "18637:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2216,
                    "nodeType": "ExpressionStatement",
                    "src": "18637:5:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "18616:471:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2273,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2206,
                    "src": "19103:3:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2195,
                  "id": 2274,
                  "nodeType": "Return",
                  "src": "19096:10:7"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 2276,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2191,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2276,
                  "src": "18288:15:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2190,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18288:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18287:17:7"
            },
            "returnParameters": {
              "id": 2195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2194,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2276,
                  "src": "18328:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18328:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18327:6:7"
            },
            "scope": 2277,
            "src": "18272:841:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 2278,
        "src": "586:18530:7"
      }
    ],
    "src": "0:19117:7"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0",
  "updatedAt": "2018-12-28T11:01:42.573Z",
  "devdoc": {
    "details": "The registrar handles the auction process for each subnode of the node it owns.",
    "methods": {
      "acceptRegistrarTransfer(bytes32,address,uint256)": {
        "details": "Accepts a transfer from a previous registrar; stubbed out here since there     is no previous registrar implementing this interface.",
        "params": {
          "deed": "The Deed object for the name being transferred in.",
          "hash": "The sha3 hash of the label to transfer.",
          "registrationDate": "The date at which the name was originally registered."
        }
      },
      "cancelBid(address,bytes32)": {
        "details": "Cancel a bid",
        "params": {
          "seal": "The value returned by the shaBid function"
        }
      },
      "constructor": {
        "details": "Constructs a new Registrar, with the provided address as the owner of the root node.",
        "params": {
          "_ens": "The address of the ENS",
          "_rootNode": "The hash of the rootnode."
        }
      },
      "eraseNode(bytes32[])": {
        "details": "Allows anyone to delete the owner and resolver records for a (subdomain of) a     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.",
        "params": {
          "labels": "A series of label hashes identifying the name to zero out, rooted at the       registrar's root. Must contain at least one element. For instance, to zero        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing       [keccak256('foo'), keccak256('bar')]."
        }
      },
      "finalizeAuction(bytes32)": {
        "details": "Finalize an auction after the registration date has passed",
        "params": {
          "_hash": "The hash of the name the auction is for"
        }
      },
      "getAllowedTime(bytes32)": {
        "details": "Returns available date for hash     * The available time from the `registryStarted` for a hash is proportional to its numeric value.",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "invalidateName(string)": {
        "details": "Submit a name 6 characters long or less. If it has been registered,     the submitter will earn 50% of the deed value.       * We are purposefully handicapping the simplified registrar as a way  to force it into being restructured in a few years.",
        "params": {
          "unhashedName": "An invalid name to search for in the registry."
        }
      },
      "isAllowed(bytes32,uint256)": {
        "details": "Determines if a name is available for registration yet     * Each name will be assigned a random date in which its auction can be started, from 0 to 8 weeks",
        "params": {
          "_hash": "The hash to start an auction on",
          "_timestamp": "The timestamp to query about"
        }
      },
      "newBid(bytes32)": {
        "details": "Submit a new sealed bid on a desired hash in a blind auction     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be masqueraded by sending more than the value of your actual bid. This is followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public hashes, like known domains and common dictionary words, will have multiple bidders pushing the price up.",
        "params": {
          "sealedBid": "A sealedBid, created by the shaBid function"
        }
      },
      "releaseDeed(bytes32)": {
        "details": "After some time, or if we're no longer the registrar, the owner can release     the name and get their ether back.",
        "params": {
          "_hash": "The node to release"
        }
      },
      "shaBid(bytes32,address,uint256,bytes32)": {
        "details": "Hash the values required for a secret bid",
        "params": {
          "hash": "The node corresponding to the desired namehash",
          "salt": "A random value to ensure secrecy of the bid",
          "value": "The bid amount"
        },
        "return": "The hash of the bid values"
      },
      "startAuction(bytes32)": {
        "details": "Start an auction for an available hash",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "startAuctions(bytes32[])": {
        "details": "Start multiple auctions for better anonymity     * Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker to simply bid blindly on all new auctions. Dummy auctions that are open but not bid on are closed after a week.",
        "params": {
          "_hashes": "An array of hashes, at least one of which you presumably want to bid on"
        }
      },
      "startAuctionsAndBid(bytes32[],bytes32)": {
        "details": "Start a set of auctions and bid on one of them     * This method functions identically to calling `startAuctions` followed by `newBid`, but all in one transaction.",
        "params": {
          "hashes": "A list of hashes to start auctions on.",
          "sealedBid": "A sealed bid for one of the auctions."
        }
      },
      "transfer(bytes32,address)": {
        "details": "The owner of a domain may transfer it to someone else at any time.",
        "params": {
          "_hash": "The node to transfer",
          "newOwner": "The address to transfer ownership to"
        }
      },
      "transferRegistrars(bytes32)": {
        "details": "Transfers the deed to the current registrar, if different from this one.     * Used during the upgrade process to a permanent registrar.",
        "params": {
          "_hash": "The name hash to transfer."
        }
      },
      "unsealBid(bytes32,uint256,bytes32)": {
        "details": "Submit the properties of a bid to reveal them",
        "params": {
          "_hash": "The node in the sealedBid",
          "_salt": "The sale in the sealedBid",
          "_value": "The bid amount in the sealedBid"
        }
      }
    },
    "title": "Registrar"
  },
  "userdoc": {
    "methods": {}
  }
}